mysql - 如何在 SQL 中编写此 UPDATE,以更新具有不同 WHERE 条件的多行

标签 mysql sql sql-update

我必须编写这个逻辑:

UPDATE imported 
   SET col1 = 'first' 
 WHERE col2 = 'value one',
   SET col1 = 'second' 
 WHERE col2 = 'value two';

一个查询中会有多个更新,所以我不想通过为每一行单独更新来填充服务器

此外:如果可以组合 2 个条件,例如 Where col2='this' AND col3='that'

最佳答案

我在 CASE 语句中添加了多个条件的示例。

UPDATE imported
SET col1 = CASE
              WHEN col2 = 'value one' THEN 'first'
              WHEN col2 = 'value two' THEN 'second'
              WHEN col2 = 'other val' AND col3 = 'condition' THEN 'third value'
           END
WHERE col2 IN ('value one', 'value two')
   OR (col2 = 'other val' AND col3 = 'condition')

关于mysql - 如何在 SQL 中编写此 UPDATE,以更新具有不同 WHERE 条件的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8117860/

相关文章:

mysql - 在 SQL 中对一行进行分组以显示不同出现次数

mysql - 如何 INSERT 或 UPDATE 大量行(关于表的 auto_increment 值)

mysql - SQL:联合或自连接

ajax - 使用 codeigniter 将状态从事件状态更新为非事件状态

PHP PDO 更新 - 需要参数和无效的参数号

php - 分页脚本的 PDO 语法或访问冲突错误

java - 字符串到 joda LocalDate,格式为 "dd-MMM-yy"

ubuntu - Ubuntu 上 cronjob 中的 Mysqldump

mysql - 如何查询 MySql 表以显示根及其子项。

python - SQLAlchemy with_for_update 读取陈旧数据