MySQL - 在 where 语句中使用 <> 时出现语法错误(插入)

MySQL - Syntax error when using <> in a where statement (insert into)

我试图在某些条件下在 mysql 中构建一个 'insert if' 机制。

我构建它所遵循的主题:MySQL INSERT IF (custom if statements)

整个代码是:

insert into qualityScore (adGroupID, keywordID, qualityScore, day, clientID) 
select 222, 212, 6, '2016-07-23', 5
where ( select qualityScore from qualityScore where adGroupID=222 and keywordID = 212 and day < '2016-07-23' ) <> 5

但是下面的有点麻烦:

(select qualityScore from qualityScore where adGroupID=222 and keywordID = 212 and day < '2016-07-23')

当我单独执行这一段时,它 returns 类似的东西:

       QualityScore
       ------------
       5

这是预期的结果。但是当我添加到代码中时,问题就存在了'<> 5'部分:

(select qualityScore from qualityScore where adGroupID=222 and keywordID = 212 and day < '2016-07-23') <> 5

它returns一个MySQL 1064语法错误代码。 据我所知,语法似乎是正确的,我找不到导致这个问题的原因。

如有任何建议,我们将不胜感激。谢谢。

尝试day < #2016-07-23#

日期的开头和结尾需要#。

没有 FROM 子句就不能有 WHERE 子句。如果您只是选择没有 table 的文字,请使用虚拟 table DUAL.

insert into qualityScore (adGroupID, keywordID, qualityScore, day, clientID) 
select 222, 212, 6, '2016-07-23', 5
from DUAL
where ( select qualityScore from qualityScore where adGroupID=222 and keywordID = 212 and day < '2016-07-23' ) <> 5

DEMO