Maison > base de données > tutoriel mysql > Comment l'instruction MySQL IF ELSE est-elle utilisée dans les procédures stockées ?

Comment l'instruction MySQL IF ELSE est-elle utilisée dans les procédures stockées ?

WBOY
Libérer: 2023-09-21 23:17:04
avant
848 Les gens l'ont consulté

L'instruction

MySQL IF ELSE 语句如何在存储过程中使用?

MySQL IF ELSE implémente la construction conditionnelle de base lorsque l'expression est évaluée comme fausse. La syntaxe est la suivante -

IF expression THEN
   statements;
ELSE
   else-statements;
END IF;
Copier après la connexion

L'instruction doit se terminer par un point-virgule.

Pour démontrer l'utilisation de l'instruction IF ELSE dans une procédure stockée MySQL, nous avons créé la procédure stockée suivante : Basée sur les valeurs de la table nommée "student_info" comme indiqué ci-dessous -

mysql> Select * from student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Jaipur     | Literature |
| 125  | Raman   | Shimla     | Computers  |
+------+---------+------------+------------+
3 rows in set (0.00 sec)
Copier après la connexion

La requête suivante va créer un fichier nommé "coursedetails_IFELSE" », qui contient l'instruction IF ELSE-

mysql> DELIMITER // ;
mysql> CREATE PROCEDURE coursedetails_IFELSE(IN S_Subject Varchar(20), OUT S_Course varchar(50))
   -> BEGIN
   -> DECLARE Sub Varchar(20);
   -> SELECT Subject INTO SUB
   -> FROM Student_info WHERE S_Subject = Subject;
   -> IF Sub = 'Computers' THEN
   -> SET S_Course = 'B.Tech(CSE)';
   -> ELSE
   -> SET S_Course = 'Subject Not in the table ';
   -> END IF;
   -> END //
Query OK, 0 rows affected (0.00 sec)
Copier après la connexion

Maintenant, lorsque nous appelons cette procédure, nous pouvons voir les résultats suivants-

mysql> Delimiter ; //
mysql> CALL coursedetails_IFELSE('Computers', @S_Course);
Query OK, 1 row affected (0.00 sec)

mysql> Select @S_Course;
+-------------+
| @S_Course   |
+-------------+
| B.Tech(CSE) |
+-------------+
1 row in set (0.00 sec)

mysql> CALL coursedetails_IFELSE ('History', @S_Course);
Query OK, 0 rows affected (0.00 sec)

mysql> Select @S_Course;
+--------------------------------+
| @S_Course                      |
+--------------------------------+
| Subject Not in the table       |
+--------------------------------+
1 row in set (0.00 sec)
Copier après la connexion

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!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal