插入多行的单个查询:
$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:我不能解雇多个插入查询。
答案 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