Dieser Artikel veranschaulicht anhand von Beispielen die Verwendung von Schleifenanweisungen (WHILE, REPEAT und LOOP) in gespeicherten MySQL-Prozeduren. Teilen Sie uns die Einzelheiten zu Ihrer Information mit: MySQL bietet Schleifenanweisungen, mit denen wir einen SQL-Codeblock basierend auf Bedingungen wiederholt ausführen können. Es gibt drei Schleifenanweisungen: WHILE, REPEAT und LOOP. Sehen wir sie uns einzeln an. Schauen wir uns zunächst die Syntax der WHILE-Anweisung an: WHILE-Ausdruck DO Aussagen ENDE WÄHREND Die WHILE-Schleife überprüft den Ausdruck zu Beginn jeder Iteration. Wenn expressionevaluates TRUE ist, führt MySQL die Anweisungen zwischen WHILE und END WHILE aus, bis expressionevaluates FALSE ist. Eine WHILE-Schleife wird als Vortest-Bedingungsschleife bezeichnet, da sie den Ausdruck der Anweisung immer prüft, bevor sie ausgeführt wird. Schauen wir uns das Flussdiagramm an: Versuchen wir anschließend, die WHILE-Schleifenanweisung in der gespeicherten Prozedur zu verwenden. Schauen wir uns ein Beispiel an: TRENNUNGSZEICHEN $$ DROP-VERFAHREN, WENN EXISTIERT test_mysql_while_loop$$ PROZEDUR ERSTELLEN test_mysql_while_loop() BEGINNEN DECLARE x INT; DECLARE str VARCHAR(255); Setze x = 1; SETZEN Sie str = ''; WÄHREND x <= 5 DO SET str = CONCAT(str,x,','); Setze x = x + 1; ENDE WÄHREND; Wählen Sie str aus. ENDE$$ TRENNUNGSZEICHEN ; In der oben beschriebenen gespeicherten Prozedur test_mysql_while_loop besteht ihre Funktion darin, die Zeichenfolge str wiederholt zu erstellen, bis der Wert der Variablen x größer als 5 ist, und dann die select-Anweisung zu verwenden, um die endgültige Zeichenfolge anzuzeigen. Wir sollten beachten, dass der Standardwert NULL ist, wenn der Wert der Variable x nicht initialisiert ist. Daher ist die Bedingung in der WHILE-Schleifen-Anweisung immer TRUE und wir haben eine unbestimmte Schleife, die unvorhersehbar ist. Lassen Sie uns ohne weitere Umschweife die gespeicherte Prozedur test_mysql_while_loopstored aufrufen: Rufen Sie test_mysql_while_loop() auf; Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse: mysql> RUFEN SIE test_mysql_while_loop(); +------------+ | str | +------------+ | 1,2,3,4,5, | +------------+ 1 Reihe im Set Abfrage OK, 0 Zeilen betroffen Schauen wir uns nun die grammatikalische Struktur der REPEAT-Schleifenanweisung an: WIEDERHOLEN aussagen; UNTIL-Ausdruck ENDE WIEDERHOLUNG Das obige SQL wird zuerst von MySQL ausgeführt. Danach wertet MySQL den Ausdruck aus. Wenn der Ausdruck FALSE ist, führt MySQL die Anweisung wiederholt aus, bis der Ausdruck TRUE ist. Da die REPEAT-Schleifen-Anweisung Ausdrücke nach der Ausführung von Anweisungen prüft, wird die REPEAT-Schleifen-Anweisung auch als Test-After-Schleife bezeichnet. Schauen wir uns das Flussdiagramm an: Wenn wir fertig sind, verwenden wir die REPEAT-Schleifenanweisung, um die gespeicherte Prozedur test_mysql_while_loop neu zu schreiben: TRENNUNGSZEICHEN $$ DROP-VERFAHREN, WENN EXISTIERT mysql_test_repeat_loop$$ PROZEDUR ERSTELLEN mysql_test_repeat_loop() BEGINNEN DECLARE x INT; DECLARE str VARCHAR(255); Setze x = 1; SETZEN Sie str = ''; WIEDERHOLEN SET str = CONCAT(str,x,','); Setze x = x + 1; BIS x > 5 ENDE WIEDERHOLUNG; Wählen Sie str aus. ENDE$$ TRENNUNGSZEICHEN ; Wir sollten beachten, dass im UNTIL-Ausdruck kein Semikolon (;) vorhanden ist. Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse: mysql> RUFEN Sie mysql_test_repeat_loop(); +------------+ | str | +------------+ | 1,2,3,4,5, | +------------+ 1 Reihe im Set Abfrage OK, 0 Zeilen betroffen Schauen wir uns abschließend ein Beispiel für die Verwendung der LOOP-Anweisung an: PROZEDUR ERSTELLEN test_mysql_loop() BEGINNEN DECLARE x INT; DECLARE str VARCHAR(255); Setze x = 1; SETZEN Sie str = ''; loop_label: SCHLEIFE WENN x > 10 DANN LEAVE-Schleifenbezeichnung; ENDE, WENN; Setze x = x + 1; WENN (x mod 2) DANN ITERATE Schleifenbezeichnung; ANDERS SET str = CONCAT(str,x,','); ENDE, WENN; ENDE DER SCHLEIFE; Wählen Sie str aus. ENDE; Die spezifischen Funktionen des obigen SQL sind wie folgt:
Führen Sie die obige Abfrageanweisung aus und erhalten Sie die folgenden Ergebnisse: mysql> RUFEN SIE test_mysql_loop(); +-------------+ | str | +-------------+ | 2,4,6,8,10, | +-------------+ 1 Reihe im Set Abfrage OK, 0 Zeilen betroffen Schauen wir uns nun die beiden Schlüsselwörter für den Regelkreis an:
Okay, das ist alles zu diesem Eintrag. Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „Kenntnisse zu gespeicherten MySQL-Prozeduren“, „Zusammenfassung der allgemeinen MySQL-Funktionen“, „Kenntnisse zu MySQL-Protokollvorgängen“, „Zusammenfassung der Kenntnisse zu MySQL-Transaktionsvorgängen“ und „Zusammenfassung der Kenntnisse zu MySQL-Datenbanksperren“. Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist. Das könnte Sie auch interessieren:
|
>>: VUE führt die Implementierung der Verwendung von G2-Diagrammen ein
Inhaltsverzeichnis 1. setState() Beschreibung 1.1...
Ich habe vor Kurzem Ubuntu 20.04 installiert und ...
In diesem Artikel wird der spezifische Code von V...
Mit der zunehmenden Anzahl offener Plattformen ver...
Dieser Artikel beschreibt hauptsächlich, wie die ...
1. catalina.bat muss auf UTF-8 eingestellt sein. ...
Verwenden Sie JOIN anstelle von Unterabfragen MyS...
Der Befehl tee wird hauptsächlich verwendet, um d...
In diesem Artikelbeispiel wird der spezifische Co...
Ich glaube, dass jeder manchmal Daten kopieren un...
In diesem Artikel wird die Methode zum manuellen ...
Vorwort Heute habe ich von einem Entwickler die R...
Der ps-Befehl in Linux ist die Abkürzung für „Pro...
Inhaltsverzeichnis Stabilisierung Drosselung Zusa...
Umweltvorbereitung: Stellen Sie lnmp auf einem Ho...