回答
是的,有一个auto_increment在那里
如果你想在最后的所有在表中的行,那么这是最后其中MAX(id)
是正确的答案的时候了!种:
SELECT fields FROM table ORDER BY id DESC LIMIT 1;
http://stackoverflow.com/a/21683753/257319 – 2014-07-16 20:07:33
恐怕如果它需要对数百万行进行排序,这会变得很慢,不是吗? – Slawa 2016-12-08 23:37:07
请记住,在关系数据库中的表只是行集合。数学中的集合是无序集合。没有第一行或最后一行;没有前一行或下一行。
您必须先按照某个字段对无序行集进行排序,然后按照您定义的顺序对结果集进行迭代。
既然你有一个自动递增的字段,我假设你希望它是排序字段。在这种情况下,你可能要做到以下几点:
SELECT *
FROM your_table
ORDER BY your_auto_increment_field DESC
LIMIT 1;
查看如何我们首先由your_auto_increment_field
排序集无序的行(或任何你把它叫)的降序排列。然后我们将结果集限制在LIMIT 1
的第一行。
如果您需要最近添加的时间戳,请添加时间戳并按最高时间戳顺序选择排序,限制为1.如果您想按ID排序,请按ID排序。如果您想使用您刚添加的那个,请使用mysql_insert_id
。
可能是两个查询速度更快...
SELECT @last_id := MAX(id) FROM table;
SELECT * FROM table WHERE id = @last_id;
让它简单地使用:PDO::lastInsertId
没错。大多数体面的MySQL接口库都有专门的方法,但是这个问题没有被标记为PHP,而是一般的MySQL语法。 – vzr 2017-04-12 13:26:21
你可以结合两个查询建议的@spacepille成单查询看起来像这样:
SELECT * FROM `table_name` WHERE id=(SELECT MAX(id) FROM `table_name`);
它应该快速工作,但在INNODB表中它比ORDER + LIMIT慢了几分之一毫秒。
SELECT * FROM adds where id=(select max(id) from adds);
此查询用于获取表中的最后一条记录。
为什么大家都提到订单,最大等?
考虑到数以百万计的条目,这不是CPU友好。
更有效的解决方案是制作触发器,将其添加到单独的表中的一行。这样您可以在O(1)时间获得值。
- 1. MySQL每天选择最后一行
- 2. mysql从最后n行中选择
- 3. 从MySQL中选择最后N行 - codeigniter
- 4. 在Mysql中选择第二个最后一行
- 5. DatagridView选择最后一行
- 6. 选择最后一行
- 7. MySQL从两列中选择组中的最后一行
- 8. 选择最后5个MySQL行
- 9. MySQL:选择最后执行的查询
- 10. 在VBA中同时选择第一行和最后一行
- 11. 在Excel中选择最后8行Vba
- 12. 如何在MySQL中按用户选择最后一条记录?
- 13. 如何在mySQL中选择无空的最后一列
- 14. 选择MySQL的最后一行,并停止对匹配条件
- 15. 选择最后一个不同的行mysql
- 16. (MYSQL)选择具有特定参数的最后一行
- 17. 如何选择mysql_query的最后一行?
- 18. 选择最后一行,范围,vba
- 19. 选择最后12行oracle
- 20. 在mysql中选择与它们对应的最后一行不同的项目
- 21. 如何在MySQL中选择某个列作用域的所有最后一行
- 22. MySQL:如何从表中选择所有行除了最后一行
- 23. 在LEFT JOIN中选择最新的一行PHP MySQL CodeIgniter
- 24. 在mysql中选择某一行
- 25. 如何选择MySQL中的最后n行?
- 26. 如何选择最后3行,但最后一个
- 27. 如何在mysql的最后一个日期之前选择最后n个月?
- 28. MySQL在查询后选择前5行
- 29. 选择最近的最后一个记录 - MySQL的PHP
- 30. 从MySQL中的一个未排序表格中选择最后3行
定义“最后一行”。 ID最高的那个?还是最近添加的? – EboMike 2010-11-01 23:21:26
什么表示最后一行 - 表中是否有auto_increment或DATETIME列? – 2010-11-01 23:21:29
是的,里面有一个'auto_increment'。我想要最近添加的一个。 – esqew 2010-11-01 23:21:54