【问题标题】:MySQL WHERE issueMySQL WHERE 问题
【发布时间】: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 UPDATEWHERE,这可能会有所帮助:stackoverflow.com/questions/6982884/…
  • 行得通!如果您有多个字段需要更新一个变量,这似乎有点愚蠢 - 幸运的是我只有一个!
  • 使用:...ON DUPLICATE KEY UPDATE guess_count = CASE WHEN guessed = 0 THEN guess_count + 1 ELSE guess_count END ;

标签: mysql sql


【解决方案1】:

showdev 给出的答案在这里:ON DUPLICATE KEY UPDATE with WHERE condition

简而言之:使用IF(condition, true, false) 而不是WHERE condition

【讨论】:

  • 感谢您将此添加为答案。
猜你喜欢
  • 1970-01-01
  • 2013-04-30
  • 1970-01-01
  • 2014-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 2011-11-29
相关资源
最近更新 更多