如何在0和1之间实现撤消系统?

时间:2018-05-21 07:29:44

标签: mysql sql

我有一个名为deleted的列,其中包含10。我也有这个问题:

UPDATE posts SET deleted = {if it is 0, then replace it with 1 and vice versa}

如何在MySQL中实现{if}语句?

5 个答案:

答案 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)

您可以尝试this

记录:

update bedrock set sex = case sex when 'F' then 'M' when 'M' then 'F' end;

答案 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