为了账号安全,请及时绑定邮箱和手机立即绑定

选择MySQL中的最后一行

选择MySQL中的最后一行

米琪卡哇伊 2019-08-26 18:53:48
选择MySQL中的最后一行我怎样才能SELECT在MySQL表格的最后一行?我是INSERT数据,我需要从上一行检索列值。auto_increment桌子上有一个。
查看完整描述

4 回答

?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

请记住,关系数据库中的表只是行集。数学中的集合是无序集合。没有第一行或最后一行; 没有上一行或下一行。


您必须首先按某些字段对无序行进行排序,然后按照您定义的顺序自由迭代结果集。


由于您有一个自动递增字段,我假设您希望它是排序字段。在这种情况下,您可能希望执行以下操作:


SELECT    *

FROM      your_table

ORDER BY  your_auto_increment_field DESC

LIMIT     1;

看看我们是如何your_auto_increment_field按降序排序(或任何你调用的)无序行的排序。然后我们将结果集限制为第一行LIMIT 1。


查看完整回答
反对 回复 2019-08-26
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

在有很多行的表上,两个查询可能更快......

SELECT @last_id := MAX(id) FROM table;SELECT * FROM table WHERE id = @last_id;


查看完整回答
反对 回复 2019-08-26
?
函数式编程

TA贡献1807条经验 获得超9个赞

您可以将@spacepille建议的两个查询组合成单个查询,如下所示:

SELECT * FROM `table_name` WHERE id=(SELECT MAX(id) FROM `table_name`);

它应该快速工作,但在INNODB表上,它比ORDER + LIMIT慢几分之一。


查看完整回答
反对 回复 2019-08-26
  • 4 回答
  • 0 关注
  • 1079 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信