首页 > 数据库 > mysql教程 > 如何在单个 MySQL 查询中更新具有不同值的多行?

如何在单个 MySQL 查询中更新具有不同值的多行?

Patricia Arquette
发布: 2025-01-17 11:17:14
原创
219 人浏览过

How Can I Update Multiple Rows with Different Values in a Single MySQL Query?

高效更新具有不同值的多个 MySQL 行

MySQL 提供了多种方法来在单个查询中更新具有不同值的多行。 虽然 IF 语句可以工作,但 CASE 语句提供了更简洁和可读的解决方案,特别是在处理多个条件时。

让我们考虑一个场景,我们需要更新 table_users 表,根据特定办公室内的用户角色分配不同的 cod_user 值。 下面演示了比使用多个 IF 语句更简洁的方法:

此查询利用 CASE 语句根据 cod_user 更新 user_rol

<code class="language-sql">UPDATE table_users
SET cod_user = CASE
    WHEN user_rol = 'student' THEN '622057'
    WHEN user_rol = 'assistant' THEN '2913659'
    WHEN user_rol = 'admin' THEN '6160230'
    END,
date = '12082014'
WHERE user_rol IN ('student', 'assistant', 'admin')
AND cod_office = '17389551';</code>
登录后复制

这是一个细分:

  • CASE 语句: 这可以优雅地处理多个条件。每个 WHEN 子句都会检查一个条件,如果为真,则分配相应的 cod_user 值。
  • 多个条件: CASE 语句有效管理不同的用户角色。
  • date 更新: 所有匹配行的 date 字段均更新为“12082014”。 请记住调整日期格式(本例中为“YYYYMMDD”)以匹配您的数据库设置。
  • WHERE 子句: 此过滤更新仅影响 user_rol 为“学生”、“助理”或“管理员”且 cod_office 为“17389551”的行。

与使用多个单独的 UPDATE 语句或复杂的嵌套 IF 结构相比,此方法提供了更高效且可维护的解决方案。 CASE 语句增强了可读性并简化了整体查询逻辑。

以上是如何在单个 MySQL 查询中更新具有不同值的多行?的详细内容。更多信息请关注PHP中文网其他相关文章!

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