Heim > Datenbank > MySQL-Tutorial > Hauptteil

MySQL-Prozesssteuerungsbedingungen und Schleifenstruktur

齐天大圣
Freigeben: 2020-05-29 10:38:56
Original
2349 Leute haben es durchsucht

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;
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren
rrree

Lassen Sie uns Syntax 2 verwenden, um dieselbe Funktion wie IF auszuführen.

语法1:
CASE 
  WHEN V1 THEN 语句 
  [WHEN V2 THEN 语句]
  ……
  [ELSE 语句]
END CASE;
Nach dem Login kopieren
Schleifenkörper

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;
Nach dem Login kopieren

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
Nach dem Login kopieren
Hier entspricht DECLARE dem Definieren einer Variablen und dem anschließenden Festlegen des Anfangswerts auf den Standardwert. Die Zuweisung von Variablen erfordert den SET-Befehl.

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;
Nach dem Login kopieren

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
Nach dem Login kopieren
LOOP-Schleife

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;
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!