如何选择MySQL表中的最后一行?
我正在插入数据,我需要从前一行检索一个列值。
表中有一个auto_increment。
如何选择MySQL表中的最后一行?
我正在插入数据,我需要从前一行检索一个列值。
表中有一个auto_increment。
当前回答
几乎每个数据库表都有一个auto_increment列(通常是id)
如果你想要表中的最后一行,
SELECT columns FROM table ORDER BY id DESC LIMIT 1;
OR
你可以将两个查询组合成一个查询,就像这样:
SELECT columns FROM table WHERE id=(SELECT MAX(id) FROM table);
其他回答
SELECT * FROM adds where id=(select max(id) from adds);
此查询用于获取表中的最后一条记录。
你可以将@spacepille建议的两个查询组合成一个查询,看起来像这样:
SELECT * FROM `table_name` WHERE id=(SELECT MAX(id) FROM `table_name`);
它的工作速度应该非常快,但在INNODB表上,它比ORDER+LIMIT慢了几分之一毫秒。
在一个查询中没有ID:
SELECT * FROM table_name LIMIT 1 OFFSET (SELECT COUNT(*) - 1 FROM table_name)
你可以在LIMIT命令中使用OFFSET:
SELECT * FROM aTable LIMIT 1 OFFSET 99
如果您的表有100行,则返回最后一行而不依赖于主键
如果您想要最近添加的一个,添加一个时间戳,并按最高时间戳的倒序选择,限制1。如果你想按ID排序,就按ID排序。如果您想使用刚才添加的,请使用mysql_insert_id。