使用where id = last_insert_id()返回空结果集

时间:2014-08-21 04:35:49

标签: mysql

我正在尝试使用

在mysql表中插入一行数据后在mysql中获取一行数据

SELECT * FROM incoming_sms WHERE id = last_insert_id();但是这会返回一组空的结果,尽管我确实插入了一个新行,而我的表中包含数据。

如何让我的查询返回一些数据?。

1 个答案:

答案 0 :(得分:1)

规范模式是在成功插入语句后立即从发出SELECT LAST_INSERT_ID()语句的同一会话执行<{1}}语句

有几种可能的原因导致您尝试的不起作用。我没有看到SELECT语句中使用的INSERT函数就像你拥有它一样;我不确定行为是否已定义。我从来没有见过这样的用法。

正常模式是:

LAST_INSERT_ID()

然后在后续处理中使用检索到的值。

再次注意INSERT INTO mytable (col) VALUES (val); -- check if statement succeeded; if it successfully inserted a row SELECT LAST_INSERT_ID(); -- retrieve returned value 的引用必须来自执行INSERT的同一会话,并且应该在之前执行发布任何其他SQL语句。

http://dev.mysql.com/doc/refman/5.5/en/information-functions.html#function_last-insert-id