我有一张桌子,这张桌子包含多列。我想知道如何更新除特定列中的条目之外的所有条目。我不想使用多个更新查询。
如果您对此有任何想法,请与我分享。非常感谢您的帮助。
表结构
查询(我自己尝试过,但我对此也很困惑)
UPDATE `table` SET STATUS = 0;
UPDATE `table` SET STATUS = 1 WHERE id = 4;
我的问题是如何将这些查询组合在一个查询中
我有一张桌子,这张桌子包含多列。我想知道如何更新除特定列中的条目之外的所有条目。我不想使用多个更新查询。
如果您对此有任何想法,请与我分享。非常感谢您的帮助。
表结构
查询(我自己尝试过,但我对此也很困惑)
UPDATE `table` SET STATUS = 0;
UPDATE `table` SET STATUS = 1 WHERE id = 4;
我的问题是如何将这些查询组合在一个查询中
要更新除一个以外的所有行:
UPDATE `table` SET STATUS = 0 WHERE id <> 4;
如果您需要明确设置 where 行的状态id = 1
,我建议您在第二个单独的查询中进行。
如果您真的想在一个查询中执行此操作:
UPDATE `table` SET STATUS = IF(id = 4, 1, 0);
你可以这样做:
UPDATE table SET STATUS = (id = 4);
请注意,您可以使用任何布尔条件:
UPDATE table SET STATUS = (id IN (4, 2));
UPDATE table
LEFT JOIN (SELECT 4 AS 'id', 1 AS 'status') AS tmp USING(id)
SET table.status = COALESCE(tmp.status, 0)