1

私はテーブルを持っています:

ID | time
1 | 124124244
2 | 211313112
3 | 131334334  

の行を取得したいmax(time)
私はこのように試しました:

select ID,max(time) from T;  

正しいmax(time)を与えましたが、与えられたIDは常に1でした。その行全体を取得できません。
どうすればいいですか?

4

4 に答える 4

2

同じ行が2つないtime場合、または1つが必要で他の行を気にしない場合は、次のように使用できます。

SELECT    id, time
FROM      T
ORDER BY  time DESC
    LIMIT 1 ;

同じ行が複数ある場合time、@Raphaelの回答はそれらすべてを返します。

于 2013-01-31T08:55:32.947 に答える
2
select t.ID, t.time from T
inner join (select MAX(time) maxTime FROM T) a
 ON a.maxTime = t.time;

SqlFiddle、xdazzの回答も(両方とも機能しています)

于 2013-01-31T08:46:40.720 に答える
2
SELECT * FROM T WHERE `time` = (SELECT MAX(`time`) FROM T)
于 2013-01-31T08:47:41.860 に答える
1

select id from tbl where time = (select max(time) from tbl)

このフィドルをチェックして ください http://sqlfiddle.com/#!2/77acd/3

于 2013-01-31T08:49:49.363 に答える