我有一個索引'problem_id'整數列,一個'times_chosen'整數列和一個varchar選項'列'的答案。目前,'選項'欄的唯一值是'A','B','C'和'D',儘管稍後可能會擴展。當我知道他們每個人的problem_id和選項時,我想增加許多(50-100)答案的'times_chosen'值。在Postgresql的多列做一個WHERE IN
所以我需要一個查詢,是這樣的:
UPDATE answers
SET times_chosen = times_chosen + 1
WHERE (problem_id, option) IN ((4509, 'B'), (622, 'C'), (1066, 'D'), (4059, 'A'), (4740, 'A')...)
這可能嗎?
它應該,至少我認爲它會在MySQL和MSSQL中。你試過了嗎?你可以用'SET times_chosen = times_chosen'來測試它 – Dirk
哦哇,它實際上工作,就像我寫的一樣!它甚至使用索引!謝謝德克 - 如果你只是複製下面的答案作爲答案,我會很樂意接受它。 – PreciousBodilyFluids
嘿,我不知道這是有效的語法。這很方便= D –