如何获取更新行的ID行?

时间:2011-02-16 13:08:01

标签: php mysql

这是我的疑问:

INSERT INTO table (value) VALUES (value) ON DUPLICATE KEY UPDATE value=value

使用mysql_insert_id()我获取新插入的ID,但是如何更新行的ID?

我试过mysql_insert_id()但是,对于更新的行,我得到0。

5 个答案:

答案 0 :(得分:2)

MySQL ON DUPLICATE KEY - last insert id?

“查看此页面:http://dev.mysql.com/doc/refman/5.0/en/insert-on-duplicate.html 在页面的底部,他们解释了如何通过将表达式传递给MySQL函数来使LAST_INSERT_ID对更新有意义。“

答案 1 :(得分:0)

没有办法做到这一点。你可以做SELECT id FROM table WHERE value = value;

答案 2 :(得分:0)

好了,因为您已经有WHERE语句,您可以使用不同的查询选择它。 mysql_insert_id()完全按照它的说法行事。从INSERT获取ID。

答案 3 :(得分:0)

从MySQL 5.1.12开始,it's possible。 MySQL的last_insert_id函数将返回插入和更新操作的自动增量字段的值。

答案 4 :(得分:0)

您将获得带有mysql_insert_id()php函数的插入ID。

但是当与ON DUPLICATE KEY UPDATE结合使用时,如果希望mysql_insert_id()为您提供已更新的密钥,而不是生成的新密钥,则必须多做一些。

将SQL更改为

INSERT INTO table (value) VALUES (value) 
       ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id),value=value;

查看更多信息here