Конструкция цикла в SQL и основных языках программирования относится к конструкции, которая многократно выполняет инструкции при условии, что указанное условие истинно. Набор инструкций, выполняемых внутри цикла, может быть одним запросом или набором команд, ведущих к большему набору запросов.
В этом руководстве мы обсудим, как реализовать цикл MySQL внутри процедуры.
В этом руководстве мы предполагаем, что вы знаете, как работать с процедурами MySQL.
Особенности MySQL Loop
Прежде чем мы углубимся в «как» реализации цикла MySQL, давайте перечислим несколько функций цикла:
- Цикл может содержать более одного оператора, каждый из которых заканчивается точкой с запятой.
- Все операторы и значения внутри цикла выполняются постоянно, но только если установленное условие истинно.
- Вы можете завершить цикл, используя инструкцию LEAVE.
- MySQL позволяет вам дать имя цикла, используя синтаксис loopName: LOOP
Основное использование
Общий синтаксис для реализации простого цикла MySQL:
[begin_label:] LOOP
statement_list
END LOOP [end_label]
Список операторов должен также включать условие LEAVE, которое указывает, когда цикл должен завершиться.
Этикетка представляет имя цикла.
Синтаксис ниже показывает реализацию цикла с оператором LEAVE:
[name]: LOOP
statement_list;
IF condition THEN
LEAVE [label];
END IF;
END LOOP [end_label];
Пример использования
В этом разделе я попытаюсь проиллюстрировать, как использовать LOOP в процедуре. Цель процедуры — реализовать простой цикл и не будет отражать реальные данные.
Рассмотрим процедуру ниже, которая реализует цикл для поиска четных чисел:
DROP PROCEDURE IF EXISTS loopMe;
DELIMITER $$
CREATE PROCEDURE loopMe()
BEGIN
DECLARE i INT;
SET i = 1;
SET @str = »;
iterateMe: LOOP
IF i > 10 THEN
LEAVE iterateMe;
END IF;
SET i = i + 1;
IF (i mod 2) THEN
ITERATE iterateMe;
ELSE
SET @str = CONCAT(@str,i,‘ ‘);
END IF;
END LOOP;
SELECT @str AS EVEN;
END$$
DELIMITER ;
CALL loopMe()
После вызова цикла мы получаем значения четных чисел, разделенных пробелами, как указано в функции CONCAT ().
Заключение
В этом руководстве мы рассмотрели основы использования цикла MySQL для итерации набора инструкций. Циклы MySQL работают аналогично циклам в других языках программирования, таких как Python, C ++ и JavaScript.