在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的同一查询中做到这一点。
谢谢
答案 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)