После этого вопроса , учтите, что вы хотите сделать несколько вещей, если выполняется условие. псевдокод:
if condition then
do things
else if other conditions then
do other things
else
other things
end if
С этой страницы можно определить оператор if в фиктивной процедуре:
DROP PROCEDURE IF EXISTS <procedure_name>();
DELIMITER $$
CREATE PROCEDURE <procedure_name>()
BEGIN
IF (<conditions>) THEN
-- do things
ELSEIF (<conditions>) THEN
-- do other things
ELSE
-- other things
END IF;
END$$
DELIMITER ;
<procedure_name>();
, что, честно говоря, является самым уродливым способом реализации if утверждение, которое я когда-либо видел на любом языке программирования, когда-либо!
На этой странице предлагается некоторый однострочный синтаксис оператора в виде
SELECT IF(<condition>, 'true message', 'false message');
для распечатки сообщения или вложенные
SELECT <fields>
IF (<condition>)
AS <custom_label>
FROM <table>
для выбора только тех строк из таблицы, которые удовлетворяют заданному c условию указанного c поля / столбца.
Теперь мне было интересно, если это Можно ли реализовать заявления более каноническим способом. Например, используя метки для содержания операторов IF-THEN:
<label>: IF (<conditions>) THEN
-- do things
ELSEIF (<conditions>) THEN
-- do other things
ELSE
-- other things
END IF <label>;
или
<label>: BEGIN
IF (<conditions>) THEN
-- do things
ELSEIF (<conditions>) THEN
-- do other things
ELSE
-- other things
END IF;
END <label>;
, которые немного менее безобразны. Цель состоит в том, чтобы найти более разумный и краткий способ определения утверждений, поэтому другие решения также приветствуются. Спасибо за вашу поддержку заранее.