1

我有一张桌子:

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

我想得到一排max(time)
我试过这样:

select ID,max(time) from T;  

虽然它给出了正确的最大(时间),但给出的 ID 始终为 1。我无法得到整行。
我该怎么做 ?

4

4 回答 4

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 回答
2

如果没有两行相同的行,time或者如果您想要其中之一并且不关心其他行,则可以使用以下命令:

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

如果有多个相同的行time,@Raphael 的答案将返回所有行。

于 2013-01-31T08:55:32.947 回答
1

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

检查这个小提琴 http://sqlfiddle.com/#!2/77acd/3

于 2013-01-31T08:49:49.363 回答