есть ли какой-либо способ использовать оператор if-else в mysql, кроме sp и функций?

#mysql

#mysql

Вопрос:

есть ли какой-либо способ использовать оператор if-else в mysql вне sp и функций в специальных запросах? Это можно легко сделать с помощью MS SQL. Это мой запрос:

 SET @Flag := 'u', @appUserID := 0;

SELECT app_user_id
INTO @appUserID
FROM app_user
WHERE user_login_id = @UserLoginID;

IF @Flag = 'u' THEN
    SELECT @appUserID;  
END IF;
  

Я получаю эту ошибку: «Код ошибки: 1064. У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с «IF @Flag = ‘u’ ЗАТЕМ ВЫБЕРИТЕ @appUserID’ в строке 1»

Комментарии:

1. Логика IF / ELSE также должна работать в MySQL: dev.mysql.com/doc/refman/8.0/en/if.html

2. если zthen работает только в хранимых процедурах, так где вы это запускаете?

Ответ №1:

Запустив это на обычной вкладке запроса, вы можете использовать DDL

 SET @Flag := 'u', @appUserID := 0;

SELECT app_user_id
INTO @appUserID
FROM app_user
WHERE user_login_id = @UserLoginID;

SELECT IF(@Flag = 'u',@sql := "SELECT @appUserID;  ",@sql := "DO NULL");
PREPARE stmt1 FROM @sql;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
  

Комментарии:

1. Спасибо, это может работать, только если у меня есть два условия, то есть if и else, а не в случае нескольких случаев if, else if . Я предполагаю, что это эквивалент IIF() в sql server.

2. mys ql IF(cond,trueresult, false result) в случае нескольких вы можете переключиться на РЕГИСТР WGEN или вложить предложение IF