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

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

Patricia Arquette
发布: 2024-12-04 18:19:15
原创
919 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板