如果是基本的mysql更新

时间:2015-03-24 10:25:46

标签: mysql mysqli

我正在尝试完成MySQL更新,这应该非常简单,当查询运行时,如果值为0,则将其设置为1,如果为1,则将其设置为0。

update agents set manual_import = 0 if manual_import =1,set manual_import = 1 if manual_import = 1

那里有很多例子但哪一个最简单?

4 个答案:

答案 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)