5

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

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

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

4

6 回答 6

12
UPDATE 
    emp
SET
    status = ABS(status - 1)
于 2013-10-04T07:02:42.960 回答
12

有一个CASE

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

或者,用一点数学:

UPDATE emp
SET status = 1 - status
于 2013-10-04T07:03:52.653 回答
8
update your_table
set status = case when status = 1 
                  then 0 
                  else 1   
             end
于 2013-10-04T07:01:46.777 回答
3
update table set status = not status

true是MySQL 的别名1,是 MySQLfalse的别名0

于 2013-10-04T07:05:18.740 回答
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);
于 2013-10-04T07:06:55.530 回答
0
UPDATE `emp` SET `status` = (`status`^1)
于 2018-05-06T23:21:03.393 回答