0

我想更新表中的 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)
4

2 回答 2

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
于 2013-02-14T13:03:01.083 回答
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)
于 2013-02-15T07:07:48.800 回答