2014-02-05 5 views
-3
SELECT IF((SELECT id FROM users where store='XXX' limit 1) IS NULL, null, (SELECT id FROM users where store='XXX' limit 1)) INTO @user_id; 

select @user_id; 

INSERT INTO `orders`(`user_id`)VALUES(@user_id); 

Мне нужно, чтобы @user_id был NULL. Я не хочу вставлять в свои таблицы заказы. Если я поставлю оператор if else над инструкцией вставки, я получу сообщение об ошибке «Синтаксическая ошибка непредвиденная IF».Получение «синтаксической ошибки непредвиденного IF» при использовании оператора IF

+0

это процедура или функция или что? –

+0

hm .. прямой запрос исполнения – user3275044

+0

почему бы не взорваться(); –

ответ

0

Используйте функцию IFNULL, таким образом:

SELECT IFNULL(condition, value_if_condition_is_null) 

В запросе, что-то вроде:

SELECT IFNULL((SELECT id FROM users where store='XXX' limit 1), (SELECT id FROM users where store='XXX' limit 1))) INTO @user_id; 
+0

Спасибо за ваш ответ. Мне нужно проверить условие, и действие зависит от него не равно нулю. В этом случае, пожалуйста, попробуйте: выберите 'xxx' в @user_id; if (@user_id не равно нулю) then выбрать 1 как ok; end if; – user3275044

+0

это в ответе: SELECT IFNULL (condition, value_if_condition_is_null) –

+0

или просто выберите в коде вашего приложения проверку нулевого или пустого результата запроса и запись и если ... else ... –

Смежные вопросы