我正在尝试完成MySQL更新,这应该非常简单,当查询运行时,如果值为0,则将其设置为1,如果为1,则将其设置为0。
update agents set manual_import = 0 if manual_import =1,set manual_import = 1 if manual_import = 1
那里有很多例子但哪一个最简单?
答案 0 :(得分:1)
一些数学可以提供帮助:
UPDATE agents
SET manual_import = 1 - manual_import # turn 1 to 0 and 0 to 1
WHERE manual_import IN (0, 1) # but only when the value is 0 or 1
答案 1 :(得分:1)
好的,我已经发现这适用于我自己的问题以及类似的任何其他简单查询。
UPDATE agents SET manual_import = CASE
WHEN manual_import = 1 THEN 0
WHEN manual_import = 0 THEN 1
END
WHERE a_id = $a_id
答案 2 :(得分:0)
您可以尝试使用案例
update agents set
manual_import = case when manual_import = 1 then 0 else 1
end
我假设manual_import只有两个值0和1,如果它只有1和0,那么试试这个:
UPDATE agents SET manual_import = case
when manual_import = 1 then 0
when manual_import = 0 then 1 else manual_import
END
答案 3 :(得分:-1)
在oracle数据库中,最常用的方法是'解码'功能。正如this问题中的回答,您可以使用以下“if”:
update agents set manual_import = if(manual_import=1,0,1)