我有一个名为deleted
的列,它要么是1
,要么是0
。我也有这个查询:
UPDATE posts SET deleted = {if it is 0, then replace it with 1 and vice versa}
如何在 MySQL 中实现该{if}
语句?
要交换标志,应执行以下操作
UPDATE posts SET deleted = CASE WHEN deleted=0 THEN 1 ELSE 0 END;
您可以使用IF:
UPDATE posts SET deleted = IF(deleted = 0, 1, 0);
你可以试试这个。
特此记录:
update bedrock set sex = case sex when 'F' then 'M' when 'M' then 'F' end;
MySQL支持IF语句。
更新帖子 删除的集合 = IF(已删除 = 0, 1, 0(,
链接为您提供有关 MYSQL IF(( 函数的更多信息: https://www.w3resource.com/mysql/control-flow-functions/if-function.php
update posts set deleted=1-deleted
这是通过取前一个值并从 1 中减去它来工作的,因此它基本上涵盖了两种情况:0 变为 1,1 变为 0。这是在具有 0 或 1 值的整数时实现 NOT 布尔逻辑的方法。
在某些硬件/软件实现中,简单的减法比IF分支轻,因此更可取。不过,不要认为SQL是这样的东西。