MySQL UPDATE 多个 IF 条件

标签 mysql if-statement

我有一个表格,其中填充了不正确的数据,因此我需要调换一些数字。我不确定这是否是最好的方法,但我正在考虑使用具有多个 IF 条件的 UPDATE 语句。像这样的东西:

UPDATE 
    `orders`
SET 
    `orderPriority` = 1
    IF(`orderPriority` = 2)
OR
    `orderPriority` = 2
    IF(`orderPriority = 3)
OR
    `orderPriority` = 3
    IF(`orderPriority` = 1);

显然这行不通,但我的 SQL 技能在这里欠缺。任何帮助表示赞赏!!!

最佳答案

UPDATE orders
    SET orderPriority = CASE WHEN orderPriority = 1 THEN 3
                             WHEN orderPriority = 2 THEN 1
                             WHEN orderPriority = 3 THEN 2
                        END
    WHERE orderPriority IN (1,2,3)

关于MySQL UPDATE 多个 IF 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5265919/

相关文章:

Javascript: "else if"语句有限制吗?

python - 派发请求时 Python if-elif-elif-elif 的最佳实践

mysql - 在子查询的子查询中使用父查询的列

可选范围内的 Python 过滤器数字(少用 if-else)

ruby-on-rails - Ruby 检查一行中是否存在记录和关联

mysql - Yii:引用多个表中行的最佳方式?

javascript - 为什么总是返回true?

java - 获取引用的属性不是 (One|Many)ToOne Hibernate 异常

php - 使用 PHP Form Builder 类提交表单后如何保留 url 变量

python - 通过查找比较python中的2个字典