【问题标题】:How can I update multiple rows in mysql with different criteria in WHERE? [duplicate]如何在 WHERE 中使用不同的条件更新 mysql 中的多行? [复制]
【发布时间】:2020-09-10 00:21:06
【问题描述】:

例如

Set col1 to A WHERE id=X 
set col1 to B WHERE ID=Y

ID 是唯一的,但不是主键。我想在一个更新查询中做到这一点

【问题讨论】:

    标签: php mysql sql-update rows


    【解决方案1】:

    您可以使用CASE表达式根据ID设置值:

    UPDATE yourtable
    SET col1 = CASE ID WHEN X THEN A
                       WHEN Y THEN B
                       ELSE col1
               END
    

    Demo on SQLFiddle

    注意ELSE 子句的使用,这样ID 不等于XYcol1 的值不会改变。这也可以通过WHERE 子句来实现:

    UPDATE yourtable
    SET col1 = CASE ID WHEN X THEN A
                       WHEN Y THEN B
               END
    WHERE ID IN (X, Y)
    

    Demo on SQLFiddle

    【讨论】:

      【解决方案2】:

      你应该像这样使用多个语句:

      update table1 set col1 = 'A' where id = 1;
      update table1 set col1 = 'B' where id = 2;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-12-21
        • 2012-08-28
        • 2021-07-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-09-13
        相关资源
        最近更新 更多