如何选择表中ID最大的整行?

时间:2011-09-30 00:47:23

标签: mysql sql

我该怎么做?

SQL SELECT row FROM table WHERE id=max(id)

7 个答案:

答案 0 :(得分:207)

您可以使用子选择:

SELECT row 
FROM table 
WHERE id=(
    SELECT max(id) FROM table
    )

请注意,如果max(id)的值不唯一,则返回多行。

如果您只想要一个这样的行,请使用@MichaelMior的答案,

SELECT row from table ORDER BY id DESC LIMIT 1

答案 1 :(得分:135)

您也可以

SELECT row FROM table ORDER BY id DESC LIMIT 1;

这将按行ID按降序对行进行排序,并返回第一行。这与返回具有最大ID的行相同。这当然假设id在所有行中都是唯一的。否则,可能会有多行具有id的最大值,您只能获得一个。

答案 2 :(得分:24)

SELECT * 
FROM table 
WHERE id = (SELECT MAX(id) FROM TABLE)

答案 3 :(得分:17)

您无法提供order by,因为order by执行了全面扫描"在桌子上。

以下查询更好:

SELECT * FROM table WHERE id = (SELECT MAX(id) FROM table);

答案 4 :(得分:0)

试试这个

 SELECT top 1  id, Col2,  row_number() over (order by id desc)  FROM Table

答案 5 :(得分:0)

一个人总是可以使用分析功能,这将给您更多的控制权

select tmp.row from ( select row, rank() over(partition by id order by id desc ) as rnk from table) tmp where tmp.rnk=1

如果根据数据类型遇到rank()函数的问题,那么也可以从row_number()或density_rank()中进行选择。

答案 6 :(得分:-2)

您也可以使用COUNT(id)代替MAX(id)

SELECT * FROM table WHERE id = (SELECT count(id) FROM table)