首页 > 数据库 > mysql教程 > 如何同时更新多个 MySQL 行?

如何同时更新多个 MySQL 行?

DDD
发布: 2025-01-21 20:07:14
原创
810 人浏览过

How Can I Update Multiple MySQL Rows Simultaneously?

MySQL:高效更新多行

问题:是否可以同时更新多个 MySQL 行?

答案:当然! INSERT ... ON DUPLICATE KEY UPDATE 语句提供了一个有效的解决方案。

示例:

假设我们有一个结构如下的表,我们需要应用多项更新:

Name id Col1 Col2
Row1 1 6 1
Row2 2 2 3
Row3 3 9 5
Row4 4 16 8

所需更新:

  • UPDATE table SET Col1 = 1 WHERE id = 1;
  • UPDATE table SET Col1 = 2 WHERE id = 2;
  • UPDATE table SET Col2 = 3 WHERE id = 3;
  • UPDATE table SET Col1 = 10 WHERE id = 4;
  • UPDATE table SET Col2 = 12 WHERE id = 4;

使用 INSERT ... ON DUPLICATE KEY UPDATE 进行合并更新:

我们可以使用单个更高效的查询来获得相同的结果,而不是多个单独的 UPDATE 语句:

<code class="language-sql">INSERT INTO table (id, Col1, Col2) VALUES (1, 1, 1), (2, 2, 3), (3, 9, 3), (4, 10, 12)
ON DUPLICATE KEY UPDATE Col1 = VALUES(Col1), Col2 = VALUES(Col2);</code>
登录后复制

此查询尝试插入新行。 如果指定 id 的行已存在(由于 id 上的主键或唯一索引),则 ON DUPLICATE KEY UPDATE 子句生效,根据提供的值更新 Col1Col2 值在 VALUES() 子句中。 与执行多个单独的 UPDATE 语句相比,此方法显着提高了性能。

以上是如何同时更新多个 MySQL 行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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