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)