我想在表格中更新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)
答案 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)