[MYSQL] Использование if в запросах

Статус
В этой теме нельзя размещать новые ответы.

RedRabbit

Мой дом здесь!
Регистрация
11 Июл 2008
Сообщения
607
Реакции
256
Здравствуйте, как можно использовать оператор if? Нужно сделать одним запросом, но у меня ругается на синтаксис, если использую if.

Код:
SELECT .... WHERE ... INTO @var;
IF (@var IS NULL) 
SELECT .... WHERE ... INTO @var;
INSERT .....;
UPDATE ....;
END IF
INSERT INTO .... VALUES ( @var.... );
 
Если правильно понял о чём ты:
Код:
SELECT
   IF (id IS NULL, 0, id)
FROM ...
 
Неа. Логика такая в первом запросе узнаем есть ли переменная @var, далее , если она пуста, то делаем SELECT(тут получаем значение @var) INSERT UPDATE, потом делаем INSERT со значением @var
 
Может такое поможет:
Код:
begin
...
if (@var IS NULL) then
select * from Table1
else
select * from Table2;
end if;
...
end;
 
Почему ошибка?


Код:
begin
SET @var='1';
if (@var IS NOT NULL) then
select @var:=@var+1;
end if;
select @var;
end;
 
Помогло, спасибо, только почему if работает только в процедурах и функциях.....:dead:
 
Помогло, спасибо, только почему if работает только в процедурах и функциях.....:dead:
В селектах он тоже работает, Для просмотра ссылки Войди или Зарегистрируйся:
PHP:
SELECT IF(1>3,'true','false'); // удобная логика для выборки полей по условию

Для той логики что хотите возможно подойдёт костыльДля просмотра ссылки Войди или Зарегистрируйся и подзапросов
PHP:
SELECT CASE 1 WHEN 1 THEN 'this is case one'  
WHEN 2 THEN 'this is case two'   
ELSE 'this is not in the case'  
END as 'how to execute case statement';
но я точно не уверен.

Еще может пригодится логика On duplicate key update - но там тоже свои приколы (великий гугл поможет).

А вообще процедуры самое оно для задачи в первом посте.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху