Die Flusskontrollanweisungen von MySQL werden in den meisten Fällen möglicherweise nicht verwendet, aber wenn wir eine gespeicherte Prozedur schreiben müssen, werden wir sie verwenden. Mit Flusskontrollanweisungen kann MySQL wie andere Programmiersprachen Programme schreiben. Im Folgenden werden jeweils bedingte Verzweigungen und Schleifenkörper vorgestellt.
Bedingter Zweig
MySQL verfügt über zwei Arten von bedingten Zweigen: IF und CASE.
IF-Bedingung
Schauen wir uns zunächst die Syntax an:
IF CONDITION THEN 语句; [ELSEIF CONDITION THEN 语句] …… [ELSE 语句] END IF;
sieht ein bisschen aus wie PHP, aber in MySQL Da ist hier kein „{}“, also verwenden Sie END IF in MySQL, um den bedingten Zweig zu beenden.
Schreiben wir den einfachsten bedingten Zweig, um zu bestimmen, ob der Eingabewert größer als 60 ist. Wenn er wahr ist, wird pass ausgegeben.
BEGIN IF score >= 60 THEN SELECT 'PASS'; END IF; END
Jetzt schreiben wir eine Struktur mit mehreren Zweigen. Wenn die Punktzahl größer oder gleich 90 ist, wird PERFETCT ausgegeben. Wenn sie größer oder gleich 80 ist, wird „Great“ ausgegeben. Wenn sie größer oder gleich 70 ist, wird „Good“ ausgegeben gleich 60, gibt es „common“ aus; andernfalls gibt es „bad“ aus; Der erste ähnelt IF in PHP und der andere ähnelt dem Switch-Case-Typ in PHP.
BEGIN IF score >= 90 THEN SELECT 'PERFECT'; ELSEIF score >= 80 THEN SELECT 'GREAT'; ELSEIF score >=70 THEN SELECT 'GOOD'; ELSEIF score >= 60 THEN SELECT 'COMMON'; ELSE SELECT 'BAD'; END IF; END
Lassen Sie uns Syntax 2 verwenden, um dieselbe Funktion wie IF auszuführen.
语法1: CASE WHEN V1 THEN 语句 [WHEN V2 THEN 语句] …… [ELSE 语句] END CASE;
Es gibt auch mehrere verschiedene Schleifenkörperstrukturen in MySQL, und es gibt auch Anweisungen ähnlich wie break und continue in PHP . Schauen wir uns als Nächstes diese Schleifen und ihre Unterschiede an.
WHILE
Das while hier ist im Grunde dasselbe wie PHP. Seine Syntax lautet wie folgt:
语法2: CASE VALUE WHEN V1 THEN 语句 [WHEN V2 THEN 语句] …… [ELSE 语句] END CASE;
Als nächstes schreiben wir den einfachsten Schleifenkörper, um die Summe von 1+2+...+100 zu berechnen.
BEGIN CASE FLOOR(score/10) WHEN 10 THEN SELECT '优秀'; WHEN 9 THEN SELECT '优秀'; WHEN 8 THEN SELECT '良好'; WHEN 7 THEN SELECT '一般'; WHEN 6 THEN SELECT '及格'; ELSE SELECT '不及格'; END CASE; END
REPEAT
repeat entspricht dem do-while-Schleifenkörper in PHP. Der Schleifenkörper wird zuerst ausgeführt und dann die Bedingung beurteilt. Die Syntax lautet wie folgt:
WHILE CONDITION DO 循环体 END WHILE;
Als nächstes verwenden wir REPEAT, um die Summe von 1+2+...+100 zu vervollständigen.
BEGIN DECLARE i TINYINT DEFAULT 1; DECLARE n TINYINT DEFAULT 100; DECLARE s INT DEFAULT 0; WHILE i <= n DO SET s = s + i; SET i = i + 1; END WHILE; SELECT s; END
LOOP kann einen Codeblock wiederholt ausführen und Beschriftungen für die Schleife festlegen.
LEAVE entspricht der break-Anweisung in PHP. Wenn die Schleife die Schleife verlassen möchte, muss sie dazu Leave verwenden. Darüber hinaus kann ITERATE verwendet werden, um die Funktion der continue-Anweisung in PHP zu implementieren.Schauen wir uns nun zwei Beispiele an.Die erste besteht darin, die Summe aller natürlichen Zahlen ab 100 zu berechnen. Da LOOP keine CONDITION-Anweisung hat, muss zum Vervollständigen LEAVE in Verbindung mit IF verwendet werden die Funktion, aus der Schleife zu springen.
REPEAT 循环体 UNTIL CONDITION END REPEAT;
Im zweiten Beispiel verwenden wir iterate. Berechnen Sie die Summe aller ungeraden Zahlen innerhalb von 100.
BEGIN DECLARE i TINYINT DEFAULT 1; DECLARE n TINYINT DEFAULT 100; DECLARE s INT DEFAULT 0; REPEAT SET s = s+i; SET i = i+1; UNTIL i > 100 END REPEAT; SELECT s; END
Das obige ist der detaillierte Inhalt vonMySQL-Prozesssteuerungsbedingungen und Schleifenstruktur. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!