在同一SQL查询中将“0”替换为“1”,将“1”替换为“0”

时间:2013-10-04 07:00:54

标签: mysql

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

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

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

6 个答案:

答案 0 :(得分:5)

update your_table
set status = case when status = 1 
                  then 0 
                  else 1   
             end

答案 1 :(得分:5)

UPDATE 
    emp
SET
    status = ABS(status - 1)

答案 2 :(得分:4)

使用CASE

UPDATE emp
SET status = CASE status 
               WHEN 1 THEN 0 
               WHEN 0 THEN 1 
             END

或者,用一点点数学:

UPDATE emp
SET status = 1 - status

答案 3 :(得分:1)

update table set status = not status

true1的别名,false是MySQL中0的别名

答案 4 :(得分: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);

答案 5 :(得分:0)

UPDATE `emp` SET `status` = (`status`^1)