如何获取最新的自动增加id的数组?

时间:2014-05-14 11:54:26

标签: php mysql lastinsertid last-insert-id

插入多行的单个查询:

$My query = "INSERT INTO exp_channel_titles(channel_id,author_id,ip_address) VALUES(11,1,'203.109.119.2'),(11,1,'203.109.119.2'),(11,1,'203.109.119.2')";

我想要的是什么:

自动增加id的数组。

我使用SELECT LAST_INSERT_ID()获得了什么:

我只得到一个id。我该怎么办才能获得最后插入字段的所有自动递增值的数组。

P.S:我不能解雇多个插入查询。

2 个答案:

答案 0 :(得分:2)

如果您在最新版本的MySQL上使用InnoDB,则可以使用LAST_INSERT_ID()和ROW_COUNT()获取ID列表。

InnoDB在进行批量插入时保证AUTO INCREMENT的序号,前提是innodb_autoinc_lock_mode设置为0(传统)或1(连续)。因此,您可以通过添加ROW_COUNT() - 1来获取LAST_INSERT_ID()中的第一个ID和最后一个ID。

答案 1 :(得分:1)

这会减少按ID排序的最后X条记录。如果您的ID是自动增量的,那么这些将是最新插入的值。

SELECT * FROM exp_channel_titles
ORDER BY id DESC
LIMIT X