MySql Where-Subquery语法错误

时间:2010-06-19 13:22:52

标签: mysql mysql-error-1064

此代码适用于Sqlite,我有更多的经验。我不知道这里有什么不对。如果它有帮助SELECT 1 FROM Post WHERE body = 'a';没有给我一个语法错误但这确实

select 1 WHERE NOT EXISTS (SELECT 1 FROM Post WHERE body = 'a' ) ;

代码:

INSERT INTO `Post` (
`name`,
...
`date`) select 
@0,
...
@6 WHERE NOT EXISTS (SELECT 1 FROM Post WHERE body =  @7 ) 

错误

near 'WHERE NOT EXISTS (SELECT 1 FROM Post WHERE body =  'text' )' at line 15

1 个答案:

答案 0 :(得分:2)

尝试在您的选择中使用dual作为虚拟表(请参阅here)。

INSERT INTO `Post` (
`name`,
...
`date`) select 
@0,
...
@6 
FROM DUAL
WHERE NOT EXISTS (SELECT 1 FROM Post WHERE body =  @7 ) 

来自参考链接:

  

您可以将DUAL指定为   在其中的情况下的虚拟表名称   没有引用表:

     

的MySQL> SELECT 1 + 1 FROM DUAL;            - > 2