2

这段代码在我有更多经验的 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
4

1 回答 1

2

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

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

从引用的链接:

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

mysql> 从 DUAL 中选择 1 + 1;-> 2

于 2010-06-19T13:26:14.653 回答