我正在尝试使用
在mysql表中插入一行数据后在mysql中获取一行数据 SELECT * FROM incoming_sms WHERE id = last_insert_id();
但是这会返回一组空的结果,尽管我确实插入了一个新行,而我的表中包含数据。
如何让我的查询返回一些数据?。
答案 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