我有一个名为deleted
的列,其中包含1
或0
。我也有这个问题:
UPDATE posts SET deleted = {if it is 0, then replace it with 1 and vice versa}
如何在MySQL中实现{if}
语句?
答案 0 :(得分:2)
要交换标志,应执行以下操作
UPDATE posts SET deleted = CASE WHEN deleted=0 THEN 1 ELSE 0 END;
答案 1 :(得分:1)
您可以使用IF:
UPDATE posts SET deleted = IF(deleted = 0, 1, 0);
答案 2 :(得分:0)
答案 3 :(得分:0)
update posts set deleted=1-deleted
这是通过获取前一个值并从1减去它来工作的,所以它基本上涵盖了两种情况:0变为1,1变为0.当你有一个0或0的整数时,这是实现NOT布尔逻辑的方法1值。
在某些硬件/软件实现中,简单的减法比IF分支轻,因此它是优选的。不过,不要认为sql是这样的事情。
答案 4 :(得分:0)
MySQL支持IF语句。
更新帖子 SET deleted = IF(删除= 0,1,0),
Link为您提供有关MYSQL IF()函数的更多信息: https://www.w3resource.com/mysql/control-flow-functions/if-function.php