Maison >base de données >tutoriel mysql >Comment utiliser la fonction de contrôle de flux MySQL

Comment utiliser la fonction de contrôle de flux MySQL

WBOY
WBOYavant
2023-05-28 15:58:17959parcourir

Dans MySQL, une fonction de contrôle de processus fait référence à une instruction qui peut contrôler le flux d'exécution d'une procédure ou d'une fonction stockée. Voici plusieurs fonctions de contrôle de processus couramment utilisées :

1. La fonction IF

permet d'obtenir l'effet IF……ELSE…….

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

On voit que la fonction IF est très similaire à l'opérateur ternaire, tel que :

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

C'est-à-dire que parmi les trois paramètres de la fonction IF, expr1 est l'expression conditionnelle, le résultat final est vrai ou faux, si la condition est vraie (vrai), expr2 est renvoyée, si la condition n'est pas vraie (faux), expr3 est renvoyée. Exemple :

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

Comment utiliser la fonction de contrôle de flux MySQL

2.La fonction IFNULL

permet également d'obtenir l'effet IF……ELSE……, tout à fait Une variante de la fonction IF.

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

C'est-à-dire que l'expression conditionnelle d'origine est transformée pour déterminer si expr1 est nulle. Si elle n'est pas nulle, elle est elle-même (expr1, elle est expr2). 🎜🎜#

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

#🎜 🎜#

Comment utiliser la fonction de contrôle de flux MySQL Equivalent à la fonction IF

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

Détermine si expr1 est vide, si elle est vide (vrai) elle s'affichera expr2, s'il n'est pas vide (faux) il affichera expr3

3.La fonction CASE

la fonction case a deux effets différents

switch case

est équivalent au cas de commutation dans Java Effect. Autrement dit, la valeur de l'expression variable dans switch est comparée à la constante derrière le cas.

		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;
        }

exprimé en 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`;

Comment utiliser la fonction de contrôle de flux MySQLStructure des fonctions

case Obligatoire La variable (champ) ou l'expression à juger
quand constante 1 puis valeur 1 (ou instruction 1) à afficher;

quand constante 2 puis valeur 2 (ou instruction 2) à afficher;#🎜 🎜 #......
else Valeur n ou instruction n à afficher ;
end


Note :

# 🎜🎜#

est différent de Java, vous écrivez directement la casse au lieu de switch, et il n'y a pas d'accolades

  • quand ajoutez la valeur constante directement après , sans écrire de deux points, utilisez What is then

  • S'il y a une valeur affichée après then, il n'est pas nécessaire d'ajouter un point-virgule s'il y a une instruction après ; alors, un point-virgule est requis.

  • quand……then…… Il peut y avoir plusieurs déclarations.

  • La valeur par défaut est autre.

  • se termine par la fin

  • 4. java Plusieurs if Jugements dans .

    		int grade=87;
            if (grade>=90){
                System.out.println("优秀");
            }else if (grade>=80){
                System.out.println("良好");
            }else if (grade>=70){
                System.out.println("一般");
            }else if (grade>=60){
                System.out.println("及格");
            }else {
                System.out.println("不及格");
            }
  • exprimé en sql :
SELECT id,`name`,chinese,
	CASE
		WHEN chinese>=90 THEN '优秀'
		WHEN chinese>=80 THEN '良好'
		WHEN chinese>=70 THEN '一般'
		WHEN chinese>=60 THEN '及格'
		ELSE '不及格'
	END AS `rank`
FROM student

Structure des fonctions :

case Comment utiliser la fonction de contrôle de flux MySQLquand la condition 1 puis la valeur 1 ou l'instruction 1 à afficher

quand la condition 2 puis la valeur 2 ou l'instruction 2 à afficher ; Valeur affichée n ou instruction n

end

Remarque :



Il n'y a aucune condition après le cas #🎜🎜 #

quand est suivi d'une condition, le résultat est vrai ou faux ; si la condition est remplie, alors est exécuté et la valeur ou l'instruction suivante est affichée

#🎜 🎜#

#🎜🎜 #Si le même then est suivi d'une valeur affichée, il n'est pas nécessaire d'ajouter un point-virgule ; si une instruction est ajoutée après, un point-virgule est requis.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer