如何在MySQL中使用多个条件更新表中的多个列?

时间:2018-09-24 11:42:04

标签: mysql sql-update

在MySQL中是否可以在具有多个条件的多个列上运行更新查询?

id name value price instock pp_flag
 1 xyz     23    27       1       9
 2 abc     28    12       0       8

例如上面的例子是表myTable的结构,我想在其中运行类似的查询:

UPDATE TABLE myTable 
   set value = 25 
 where id = 1 
   and price = 12 
 where pp_flag = 8

想知道我是否可以在MYSQL的同一查询中做到这一点。

谢谢

4 个答案:

答案 0 :(得分:0)

我了解到您想这样做

UPDATE TABLE myTable  set value = 25  where id = 1

UPDATE TABLE myTable  set price = 12  where pp_flag = 8

在一个语句中

您不能执行此操作,因为这是两个独立的WHERE条件。

答案 1 :(得分:0)

您可以使用多个条件来更新表的列。

根据您的要求,您可以使用以下查询:

UPDATE TABLE myTable set value = 25 
 where id = 1 or (price = 12 and pp_flag = 8);

希望它将对您有帮助!

答案 2 :(得分:0)

使用and in where子句:

UPDATE TABLE myTable 
   set value = 25 
 where id = 1 
   and price = 12  and pp_flag = 8

答案 3 :(得分:0)

是的,可以使用 MySQL 中的内置 IF 函数 (https://dev.mysql.com/doc/refman/8.0/en/if.html)。

查询您的示例将是:

UPDATE myTable SET 
value = if(id=1, 25, value), 
price = if(pp_flag=8, 12, price)