MySql Where-Subquery синтаксическая ошибка - PullRequest
2 голосов
/ 19 июня 2010

Этот код работал в 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 Ответ

2 голосов
/ 19 июня 2010

Попробуйте использовать dual в качестве фиктивной таблицы в вашем списке выбора (см. здесь ).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...