Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL哪里有问题_Mysql_Sql - Fatal编程技术网

MySQL哪里有问题

MySQL哪里有问题,mysql,sql,Mysql,Sql,我遇到以下问题: 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了,所以它有点生疏了。该错误表示附近的错误,其中guessed=0。其思想是,当guess=0时,它只更新guess\u计数

我遇到以下问题:

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了,所以它有点生疏了。该错误表示
附近的错误,其中guessed=0
。其思想是,当
guess=0
时,它只更新
guess\u计数

我相信这很简单,但我找不到

(我使用的是PDO,但这与SQL错误无关)

给出的答案如下:


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

关于使用
进行重复密钥更新
WHERE
,这可能会有帮助:这很有效!如果您有多个字段需要在一个变量上更新,这似乎有点愚蠢-幸运的是,我只有一个!使用:
…在重复键上更新guess\u count=CASE,当guess=0时,则guess\u count+1,否则guess\u count结束感谢您将此添加为答案。