Синтаксис SQL, если существует - PullRequest
2 голосов
/ 14 июля 2010

почему я получаю ошибку:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF EXISTS(SELECT id FROM mytable WHERE id = '1')' at line 1 

запрос:

IF EXISTS(SELECT id FROM mytable WHERE id = '1')

Спасибо

Ответы [ 4 ]

6 голосов
/ 14 июля 2010

IF EXISTS работает только в хранимой процедуре.Вне хранимой процедуры IF() является функцией, которая принимает 3 аргумента.Правильное использование будет

SELECT IF(EXISTS(SELECT `column` FROM `table` WHERE `id` = `1`), 1, 0);
0 голосов
/ 14 июля 2010

Не сейчас на машине с MySQL, но похоже, что это потому, что оператор неполный, вам нужно указать ему, что делать, если идентификатор существует.

ЕСЛИ СУЩЕСТВУЕТ (...) сделать что-то

0 голосов
/ 14 июля 2010

IF EXISTS не имеет никакого смысла в MySQL.См. подзапросы с EXISTS или NOT EXISTS в документации по использованию MySQL.

По сути, вам нужно использовать его в выражении, а не просто как логический блок

0 голосов
/ 14 июля 2010

Попробуйте использовать

Declare @ID Integer
Select @ID=id From mytable where id=1
IF @ID is not null    OR  IF @ID > 0
Begin
....
End
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...