Php MySQL将两个更新查询合并到一个查询中

Php MySQL将两个更新查询合并到一个查询中,php,mysql,sql-update,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') 将“状态”数据类型设为布尔值,默认值为0,名称不在('a','b','c','d') 使用 您不必运行两个查询。您可以使用语句 UPDATE myTable SET status =

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

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

将“状态”数据类型设为布尔值,默认值为0,
名称不在('a','b','c','d')

使用

您不必运行两个查询。

您可以使用语句

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

当语句可能重复Try with sql union或union all位于两个查询之间时,请使用
case尝试此操作
UPDATE myTable SET status=IF(名称在('a','b','c','d'),1,0)
@TalalFarhat您是否正在使用UPDATE来更新状态,如果在第一次操作之后无法进行状态更新?或者,当您使用布尔值作为状态时,您会遇到问题?
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);