如何选择MySQL表中的最后一行?
我正在插入数据,我需要从前一行检索一个列值。
表中有一个auto_increment。
如何选择MySQL表中的最后一行?
我正在插入数据,我需要从前一行检索一个列值。
表中有一个auto_increment。
当前回答
简单地使用:PDO::lastInsertId
http://php.net/manual/en/pdo.lastinsertid.php
其他回答
请记住,关系数据库中的表只是行的集合。集合在数学中是无序集合。没有第一行或最后一行;没有上一行或下一行。
您必须首先根据某些字段对您的无序行集进行排序,然后才可以按照您定义的顺序对结果集进行迭代。
既然你有一个自动递增字段,我假设你想要它作为排序字段。在这种情况下,你可能需要做以下事情:
SELECT *
FROM your_table
ORDER BY your_auto_increment_field DESC
LIMIT 1;
看看我们是如何首先根据your_auto_increment_field(或任何你叫它的名字)对无序行集进行降序排序的。然后我们将结果集限制为limit 1的第一行。
在有很多行的表上,两个查询可能更快…
SELECT @last_id := MAX(id) FROM table;
SELECT * FROM table WHERE id = @last_id;
在一个查询中没有ID:
SELECT * FROM table_name LIMIT 1 OFFSET (SELECT COUNT(*) - 1 FROM table_name)
简单地使用:PDO::lastInsertId
http://php.net/manual/en/pdo.lastinsertid.php
SELECT * FROM adds where id=(select max(id) from adds);
此查询用于获取表中的最后一条记录。