如何在PDO中进行SQL查询知道下一个ID是什么?我测试了$sql->lastInsertId()
和SELECT LAST_INSERT_ID() FROM my_table
,但根据这些,当我的表中最后一个ID是66时,最后的ID是116。从表中获取正确的最后一个ID
在此先感谢!
如何在PDO中进行SQL查询知道下一个ID是什么?我测试了$sql->lastInsertId()
和SELECT LAST_INSERT_ID() FROM my_table
,但根据这些,当我的表中最后一个ID是66时,最后的ID是116。从表中获取正确的最后一个ID
在此先感谢!
会select max(lastID) from my_table
工作吗? (假设包含上次创建的ID的列名称称为lastID)
如果您在ID列上有自动递增,则下一个ID并不总是last item's ID + 1
。因此,如果插入两个元素(ID 1和2),请删除第二个元素并再次插入新元素,其ID将为3而不是2,但也取决于数据库引擎。
但是,如果你想获得最后一个项目的ID可能,例如,通过降ID责令列,选择第一项的ID
LAST_INSERT_ID()
返回插入与autoincrementation最后一个ID。其实从那时起记录可能会被删除(也许所有这些都是从67-116),但这并不会改变自动增量位置,而下一个ID将会是117.
如果你想知道什么是最大的id你的桌子,然后SELECT max(id) FROM table
可以帮助你。
我希望能说服你改变主意:
id只是一个抽象值,类似于意外的数字。它的目的是独特。这意味着没有值必须重复使用。所以,它将永远是一个全新的ID。
这就是为什么你的数据库使得它116,而不是66
这就是为什么你必须是内容与116,不强制其66
且不说两者lastInsertId()
和SELECT LAST_INSERT_ID()
保证是正确的价值,同时接受了暗示使用max(lastID)
的接受答案。
这样做! :) 非常感谢!我会尽快接受你的回答。 – Erik 2013-03-15 22:03:47
这个答案本质上是错误的,最好被删除。 – 2013-03-16 07:22:09