1

2 つの質問があります。まず、行を持つMySQLデータベースがあります: id(AUTO_INCREMENT PRIMARY KEY)name、およびtime。このデータベースは、レースの時間を表します。時間が一番小さい名前と時間を選びたいです。

SELECT name, MIN(time) as time FROM race GROUP BY TIME;

このクエリは、名前に重複がない限り、すべての時間と名前を提供します。ただし、最速の時間とその行の名前だけが必要です。

次に、時間を送信するときに、自分がどこにいるかを知りたいと思います。各行の各IDを同じに保ちますORDER BY TIMEか、それとも時間ごとにテーブルを並べ替えてから、ID = 1の行を選択できますか?

4

2 に答える 2

2

同時に複数のエントリを持つことが可能であれば、結果セットを 1 に制限すると名前が除外される可能性があるため、このようなネストされたクエリを使用します。

select name, time from race where time = (select min(time) from race)

特定の時間がどの位置にあるかを知りたい場合は、それよりも時間が短いエントリの数を数えるだけです。

select count(*) + 1 as place from race where time < [your time]
于 2012-07-19T16:22:15.147 に答える
1

最初の質問では、「最小」時間を選択する必要があります。

これが、私が思うに、これを行う最も明確な方法です。これは、LIMIT関数を使用して1行のみを返すものです。

MySQL:

SELECT name, time 
FROM race 
ORDER BY time asc
LIMIT 1;

MS SQL:

SELECT TOP 1 name, time
FROM race
ORDER BY time asc
于 2012-07-19T16:13:18.660 に答える