首页 >数据库 >mysql教程 >在 MySQL 中 INSERT ON DUPLICATE KEY UPDATE 后如何检索受影响行的 ID?

在 MySQL 中 INSERT ON DUPLICATE KEY UPDATE 后如何检索受影响行的 ID?

Patricia Arquette
Patricia Arquette原创
2024-12-04 18:19:151004浏览

How Can I Retrieve the ID of an Affected Row After an INSERT ON DUPLICATE KEY UPDATE in MySQL?

检索 MySQL 中 ON DUPLICATE KEY 更新的 ID

执行 INSERT ON DUPLICATE KEY 查询时,获取受影响行的 ID可能具有挑战性。传统上,这需要运行单独的查询,因为 LAST_INSERT_ID() 通常只返回新插入行的 ID。

但是,有一种解决方法可以利用 LAST_INSERT_ID(expr) 函数。通过将表达式传递给此函数,即使对于更新的行,您也可以使其输出有意义。

解决方案

使用以下命令检索插入或更新的行的 ID单个查询:

  1. 确保您的表具有 AUTO_INCREMENT 列,例如id.
  2. 使用以下查询语法:
INSERT INTO table (a,b,c) VALUES (1,2,3)
ON DUPLICATE KEY UPDATE>

通过在 UPDATE 子句中将 id 列设置为 LAST_INSERT_ID(id),MySQL 将在插入行和更新行的 id 列。

这允许您检索最近操作的 ID (插入或更新)只需调用 LAST_INSERT_ID() 即可。它有效地将 INSERT 和 UPDATE 语句的功能组合到单个查询中。

以上是在 MySQL 中 INSERT ON DUPLICATE KEY UPDATE 后如何检索受影响行的 ID?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn