If SQL: основы работы с языком запросов для баз данных
Оператор if sql используется для ветвления логических выражений в SQL запросах. Это позволяет условно выполнять различные запросы в зависимости от результатов проверки.
Синтаксис оператора if sql выглядит следующим образом:
IF (логическое выражение) THEN
{ запрос (или последовательность запросов) }
END IF;
Пример использования if sql:
IF (SELECT COUNT(*) FROM users WHERE username='john') > 0 THEN
SELECT * FROM users WHERE username='john';
ELSE
INSERT INTO users (username, password) VALUES ('john', 'mypassword123');
END IF;
В этом примере мы проверяем, существует ли уже пользователь с именем "john" в таблице users. Если да, то выполняется запрос на выборку данных о пользователе, который уже существует. Если же такого пользователя нет, то выполняется запрос на добавление нового пользователя с именем "john" и паролем "mypassword123".
Так же, оператор if sql может использоваться внутри триггеров (triggers) и хранимых процедур (stored procedures), где в зависимости от условий могут выполняться различные запросы.
Вот еще один пример, где мы удаляем пользователя из таблицы users только если его последняя активность была более 30 дней назад:
IF (SELECT DATEDIFF(NOW(), last_activity) FROM users WHERE id=123) > 30 THEN
DELETE FROM users WHERE id=123;
END IF;
В этом примере мы сравниваем разницу между текущей датой и датой последней активности пользователя с id=123. Если эта разница больше 30 дней, то выполняется запрос на удаление пользователя из таблицы. Если же разница меньше или равна 30 дням, то запрос на удаление не выполняется.