MySql Where-Subquery语法错误

标签 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

最佳答案

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

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

来自引用的链接:

You are allowed to specify DUAL as a dummy table name in situations where no tables are referenced:

mysql> SELECT 1 + 1 FROM DUAL; -> 2

关于MySql Where-Subquery语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3075627/

相关文章:

mysql - 导入 album-mysql 数据库在 Lynda 教程的 phpmyadmin 上收到错误

php - jQGrid - 从 Grid1 中选择行以填充 Grid2(MySQL、jQuery、PHP)

java - rs.next() 不返回表的第一个值

php - 按更多组合分组

mysql - 根据连接表中记录的存在对记录进行排序

mysql - 在 MySQL 命令行中执行 .sql 脚本的正确语法是什么?

mysql - 将脚本从 MySQL 4.0 迁移到 4.1

mysql - 从数据库表中删除冗余行

php - MySQL:是否可以缩短错误消息?

mysql - 子查询多行