我有一个名为“emp”的表,其中包含以下数据:
id name status
1 x 0
2 y 1
3 z 0
4 p 1
如何编写查询以在单个查询中将状态0更改为1并将1更改为0?
答案 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
true
是1
的别名,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)