【发布时间】:2013-06-07 00:05:03
【问题描述】:
我遇到以下查询的问题:
INSERT INTO guess (user_id, logo_id, guess, level) VALUES (:user_id,:logo_id,:guess,:level) ON DUPLICATE KEY UPDATE guess_count = guess_count + 1 WHERE guessed=0
我有一段时间没有使用 SQL,所以它有点生疏。该错误表示WHERE guessed=0 附近有错误。这个想法是它只在guessed = 0 时更新guess_count。
我确定这很简单,但我找不到...
(我正在使用 PDO,但这对于 SQL 错误无关紧要)
【问题讨论】:
-
关于使用
ON DUPLICATE KEY UPDATE和WHERE,这可能会有所帮助:stackoverflow.com/questions/6982884/… -
行得通!如果您有多个字段需要更新一个变量,这似乎有点愚蠢 - 幸运的是我只有一个!
-
使用:
...ON DUPLICATE KEY UPDATE guess_count = CASE WHEN guessed = 0 THEN guess_count + 1 ELSE guess_count END ;