MySQL使用IF语句更新2列

时间:2013-02-14 12:59:01

标签: mysql sql if-statement sql-update

我想在表格中更新2列。 POST值为1或0。 所以我有以下查询,我不确定它是否有效,但我正在寻找更好的方法来做到这一点。

如果POST值($ yes_no)等于1,那么我需要增加tableA.num_yes +1 并减少tableA.num_yes -1。

如果POST值($ yes_no)等于0,则相同。

t.num_yes = IF($yes_no = 1, t.num_yes + 1, t.num_yes),
t.num_no = IF($yes_no = 1, t.num_no - 1, t.num_no),
t.num_no = IF($yes_no = 0, t.num_no + 1, t.num_no),
t.num_yes = IF($yes_no = 0, t.num_yes - 1, t.num_yes)

2 个答案:

答案 0 :(得分:2)

您也可以在此问题上使用CASE。例如,

UPDATE  tableName
SET     num_yes = CASE  WHEN $yes_no = 1 
                        THEN num_yes + 1
                        ELSE num_yes - 1
                    END,
        num_no = CASE   WHEN $yes_no = 1 
                        THEN num_no - 1
                        ELSE num_no + 1
                    END

答案 1 :(得分:0)

试试这个

UPDATE  tableName as t
SET 
        t.num_yes = IF($yes_no = 1,t.num_yes + 1,t.num_yes - 1),
    t.num_no = IF($yes_no = 1,t.num_yes - 1,t.num_yes + 1)