MySQL将两个UPDATE查询合并为一个查询


MySQL combine two UPDATE Queries in one Query

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

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')

您可以使用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);

将'status'数据类型设为布尔型,默认值为0并用于"name NOT IN ('a', 'b', 'c', 'd')"

使用

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

您不必运行两个查询。