SQL SELECT行FROM表WHERE id = max(id)
我将如何做这样的事情? 我一直在想这个问题大概一个小时。 非常令人沮丧。 任何帮助都是极好的!
你可以使用子查询:
SELECT row FROM table WHERE id=( SELECT max(id) FROM table )
请注意,如果max(id)
值不唯一,则会返回多行。
如果你只想要一个这样的行,用@ MichaelMior的答案,
SELECT row from table ORDER BY id DESC LIMIT 1
你也可以做
SELECT row from table ORDER BY id DESC LIMIT 1;
这将按照ID降序对行进行sorting并返回第一行。 这与返回具有最大ID的行相同。 这当然假定id
在所有行中是唯一的。 否则,可能会有多个行的id
为最大值,你只会得到一个。
您不能order by
因为order by
在桌面上进行“全面扫描”。
以下查询更好:
SELECT * FROM table WHERE id = (SELECT MAX(id) FROM table);
SELECT * FROM table WHERE id = (SELECT MAX(id) FROM TABLE)
试试这个
SELECT top 1 id, Col2, row_number() over (order by id desc) FROM Table
你也可以使用COUNT(id)而不是MAX(id)
SELECT * FROM table WHERE id = (SELECT count(id) FROM table)