Heim  >  Artikel  >  Datenbank  >  So verwenden Sie die MySQL-Flusskontrollfunktion

So verwenden Sie die MySQL-Flusskontrollfunktion

WBOY
WBOYnach vorne
2023-05-28 15:58:17940Durchsuche

In MySQL bezieht sich eine Prozesssteuerungsfunktion auf eine Anweisung, die den Ausführungsfluss einer gespeicherten Prozedur oder Funktion steuern kann. Im Folgenden sind einige häufig verwendete Prozesssteuerungsfunktionen aufgeführt:

1.IF-Funktion

erzielt den Effekt von IF……ELSE…

# 如果expr1为true,则返回expr2,否则返回expr3
IF(expr1,expr2,expr3)

Es ​​ist ersichtlich, dass die IF-Funktion dem ternären Operator sehr ähnlich ist, wie zum Beispiel:

		// 比较最大数
        int a=10;
        int b=5;
        // 比较
        int bigNum=a>b?a:b;

Das heißt, unter den drei Parametern der IF-Funktion ist expr1 ein bedingter Ausdruck und das Endergebnis ist wahr oder Wenn die Bedingung wahr ist (true), wird Ausdruck2 zurückgegeben, und wenn die Bedingung nicht wahr ist (falsch), wird Ausdruck3 zurückgegeben. Beispiel:

SELECT IF(10>5,10,5) AS bigNum;

So verwenden Sie die MySQL-Flusskontrollfunktion

2. Die Funktion IFNULL

erzielt auch den Effekt von IF...

# 如果expr1不为NULL,则返回expr1,否则返回expr2
IFNULL(expr1,expr2)

wandelt den ursprünglichen bedingten Ausdruck in einen Ausdruck um, der bestimmt, ob expr1 null ist. Wenn er leer ist, ist expr2 leer (true). leer (falsch) zeigt expr3 an

3.CASE-FunktionSo verwenden Sie die MySQL-Flusskontrollfunktion

Case-Funktion hat zwei verschiedene Effekte

Switch Case

Äquivalent zum Effekt von Switch Case in Java. Das heißt, der Wert des Variablenausdrucks in switch wird mit der Konstante hinter dem Fall verglichen.

SELECT IFNULL(null,'不空') AS notNull

ausgedrückt in SQL:

SELECT IF(null IS NULL,null,'不空') AS notNull

Funktionsstruktur

case Variable (Feld) oder zu beurteilender Ausdruck

wenn Konstante 1, dann anzuzeigender Wert 1 (oder Anweisung 1);So verwenden Sie die MySQL-Flusskontrollfunktionwenn Konstante 2, dann Wert 2 (oder Anweisung 2) soll angezeigt werden;

......

else Wert n oder Anweisung n soll angezeigt werden;

end


Hinweis:



unterscheidet sich von Java, schreiben Sie stattdessen die Groß- und Kleinschreibung direkt um, und es gibt keine geschweiften Klammern

Wenn Sie den konstanten Wert direkt hinzufügen, ohne einen Doppelpunkt zu schreiben, verwenden Sie then
  • Wenn danach ein Wert angezeigt wird, ist es nicht erforderlich, ein Semikolon hinzuzufügen Nach der Anweisung then müssen Sie ein Semikolon hinzufügen.
  • when……then…… Es können mehrere Anweisungen vorhanden sein.
  • Die Standardeinstellung ist „sonst“.
  • endet mit end
  • 4. Multiple IF
  • ähnelt Multiple if-Urteilen in Java.

    		int week=3;
            switch (week){
                case 1:
                    System.out.println("星期一");
                    break;
                case 2:
                    System.out.println("星期二");
                    break;
                case 3:
                    System.out.println("星期三");
                    break;
                case 4:
                    System.out.println("星期四");
                    break;
                case 5:
                    System.out.println("星期五");
                    break;
                case 6:
                    System.out.println("星期六");
                    break;
                case 7:
                    System.out.println("星期日");
                    break;
                default:
                    System.out.println("非法数据");
                    break;
            }

    ausgedrückt in SQL:
  • # NOW()函数用于获取当前日期和时间,
    # WEEKDAY(date)函数,表示返回date对应的工作日索引,
    # 因为索引从0开始,所以加1;也可以不加1,将when的常量改为工作日索引也可
    SELECT CASE WEEKDAY(NOW())+1
    	WHEN 1 THEN '星期一'
    	WHEN 2 THEN '星期二'
        WHEN 3 THEN '星期三'
        WHEN 4 THEN '星期四'
        WHEN 5 THEN '星期五'
        WHEN 6 THEN '星期六'
        WHEN 7 THEN '星期日'	
    	ELSE '非法数据'
    END AS `week`;

Funktionsstruktur:

case

wenn Bedingung 1, dann Wert 1 oder Anweisung 1 angezeigt werden soll;So verwenden Sie die MySQL-Flusskontrollfunktionwenn Bedingung 2, dann Wert 2 oder Anweisung 2 angezeigt werden soll;

. .....

else Wert n oder Anweisung n, der angezeigt werden soll

end


Hinweis: Es gibt keine Bedingung nach



case

Wenn eine Bedingung folgt, ist das Ergebnis wahr oder falsch; Wenn die Bedingung erfüllt ist, wird der folgende Wert oder die folgende Anweisung angezeigt.
  • Ebenso ist es nicht erforderlich, ein Semikolon hinzuzufügen, wenn danach ein angezeigter Wert steht. Wenn danach eine Anweisung steht, ist ein Semikolon erforderlich .

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die MySQL-Flusskontrollfunktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen