Mysql 替换“;0“;至于;1“;及;1“;至于;0“;在同一个SQL查询中

Mysql 替换“;0“;至于;1“;及;1“;至于;0“;在同一个SQL查询中,mysql,Mysql,我有一个名为“emp”的表,其中包含以下数据: id name status 1 x 0 2 y 1 3 z 0 4 p 1 如何编写查询以在单个查询中将状态0更改为1,并将状态1更改为0 带有案例: update your_table set status = case when status = 1

我有一个名为“emp”的表,其中包含以下数据:

id        name   status
1           x         0
2           y         1
3           z         0
4           p         1

如何编写查询以在单个查询中将状态0更改为1,并将状态1更改为0

带有
案例

update your_table
set status = case when status = 1 
                  then 0 
                  else 1   
             end
UPDATE emp
SET status = CASE status 
               WHEN 1 THEN 0 
               WHEN 0 THEN 1 
             END
或者,用一点数学:

UPDATE emp
SET status = 1 - status

true
是MySQL中
1
的别名,
false
0
的别名。它的工作原理和你想要的一样

if($_REQUEST['status']=="1")
        {
            $status="0";
        }
        else
        {
            $status="1";
        }
        $id=$_REQUEST['id'];
        $q="UPDATE `emp` SET `status`='$status' WHERE `id` ='$id'";
        $qr=mysql_query($q);

status
be
null
?在我看来,这是一个非常好的方法,但只适用于0对1和1对0的替换。在大学学习布尔函数的过程中,我很好奇将它们替换成数学函数(并成功地将它们全部替换掉!):P,这就是我如何想到的:)
update table set status = not status
if($_REQUEST['status']=="1")
        {
            $status="0";
        }
        else
        {
            $status="1";
        }
        $id=$_REQUEST['id'];
        $q="UPDATE `emp` SET `status`='$status' WHERE `id` ='$id'";
        $qr=mysql_query($q);
UPDATE `emp` SET `status` = (`status`^1)