MySQL在一个Query中组合了两个UPDATE查询

时间:2015-12-28 08:50:04

标签: php mysql sql-update

我想更新状态,但使用一个查询!!

UPDATE myTable SET `status` = 0 WHERE `name` IN ('a', 'b', 'c', 'd')
UPDATE myTable SET `status` = 1 WHERE `name` NOT IN ('a', 'b', 'c', 'd')

2 个答案:

答案 0 :(得分:6)

您可以使用 CASE 声明。

UPDATE myTable
SET status = (CASE
                  WHEN `name` IN ('a','b','c','d') THEN '0'
                  WHEN `name` NOT IN ('a','b','c','d') THEN '1'
              END);

答案 1 :(得分:0)

制作'状态'数据类型布尔值默认值0 和" name NOT IN ('a', 'b', 'c', 'd')"

使用

UPDATE myTable SET `status` = 1 WHERE `name` NOT IN ('a', 'b', 'c', 'd');

您不必运行两个查询。