Maison > base de données > tutoriel mysql > Comment utiliser l'instruction if dans MySQL

Comment utiliser l'instruction if dans MySQL

little bottle
Libérer: 2019-04-28 13:18:00
avant
38685 Les gens l'ont consulté

Les if de MySQL peuvent être utilisés comme expression ou comme instruction de contrôle de processus dans une procédure stockée. Cet article parle principalement de l'utilisation régulière des instructions if dans MySQL, qui ont une certaine valeur d'apprentissage. Les amis intéressés peuvent le découvrir. .

IF expression

IF(expr1,expr2,expr3)

Si expr1 est VRAI (expr1 <> 0 et expr1 <> NULL), alors IF() renvoie la valeur est expr2 ; sinon la valeur de retour est expr3. La valeur de retour de IF() est soit une valeur numérique, soit une valeur de chaîne, selon le contexte.

select *,if(sva=1,"男","女") as ssva from taname where sva != ""
Copier après la connexion

if en tant qu'expression peut également être implémenté en utilisant CASE lorsque :

select CASE sva WHEN 1 THEN &#39;男&#39; ELSE &#39;女&#39; END as ssva from taname where sva != &#39;&#39;
Copier après la connexion

Dans le résultat de retour de la première solution, value=compare-value. Le résultat de retour du deuxième scénario est le vrai résultat du premier scénario. S'il n'y a pas de valeur de résultat correspondante, le résultat renvoyé est le résultat après ELSE. S'il n'y a pas de partie ELSE, la valeur de retour est NULL.

Par exemple :

SELECT CASE 1 WHEN 1 THEN &#39;one&#39;
  WHEN 2 THEN &#39;two&#39; 
   ELSE &#39;more&#39; ENDas testCol
Copier après la connexion

en affichera un

IFNULL(expr1,expr2)

Si expr1 n'est pas NULL, la valeur de retour de IFNULL() est expr1 ; sinon la valeur de retour est expr2. La valeur de retour de IFNULL() est soit un nombre, soit une chaîne, selon le contexte dans lequel il est utilisé. La valeur de résultat par défaut de

mysql> SELECT IFNULL(1,0);
        -> 1mysql> SELECT IFNULL(NULL,10);
        -> 10mysql> SELECT IFNULL(1/0,10);
        -> 10mysql> SELECT IFNULL(1/0,&#39;yes&#39;);
        -> &#39;yes&#39;
Copier après la connexion

IFNULL(expr1,expr2) est la plus "générique" des deux expressions, dans l'ordre STRING, REAL ou INTEGER.

IF ELSE Utilisez

if comme instruction de contrôle de flux pour implémenter un jugement conditionnel et effectuer différentes opérations lorsque différentes conditions sont remplies. Tant que nous apprenons la programmation, nous connaissons tous le rôle de if. Jetons un coup d'œil. Voyons comment if est utilisé dans la procédure stockée MySQL.

IF search_condition THEN 
    statement_list  
[ELSEIF search_condition THEN]  
    statement_list ...  [ELSE 
    statement_list]  END IF
Copier après la connexion

est similaire à l'instruction IF en PHP. Lorsque la condition search_condition dans IF est établie, l'instruction Statement_list après THEN est exécutée. Sinon, la condition dans ELSEIF est jugée. Si elle est établie, l'instruction Statement_list suivante. L'instruction est exécutée. Sinon, les autres instructions continuent. Lorsque les conditions de toutes les branches ne sont pas remplies, la branche ELSE est exécutée. search_condition est une expression conditionnelle, qui peut être composée d'opérateurs conditionnels tels que "=, <, <=, >, >=, !=", et plusieurs expressions peuvent être combinées à l'aide de AND, OR et NOT .

Par exemple, créez une procédure stockée qui interroge la note (grade) de l'étudiant via son numéro d'étudiant (student_no) et son numéro de cours (course_no), et renvoie la note et la note de ceux qui ont des notes supérieures à 90 points. Niveau A, ceux ayant moins de 90 points et égal ou égal à 80 points sont le Niveau B, ceux ayant moins de 80 points et égal ou égal à 70 points sont le Niveau C, et l'ordre passe au Niveau E. Ensuite, le code pour créer la procédure stockée est le suivant :

create procedure dbname.proc_getGrade  
(stu_no varchar(20),cour_no varchar(10))  BEGIN declare stu_grade float;  
select grade into stu_grade from grade where student_no=stu_no and course_no=cour_no;  
if stu_grade>=90 then 
    select stu_grade,&#39;A&#39;;  elseif stu_grade<90 and stu_grade>=80 then 
    select stu_grade,&#39;B&#39;;  elseif stu_grade<80 and stu_grade>=70 then 
    select stu_grade,&#39;C&#39;;  elseif stu_grade70 and stu_grade>=60 then 
    select stu_grade,&#39;D&#39;;  else 
    select stu_grade,&#39;E&#39;;  end if;  END
Copier après la connexion

Remarque : IF est une instruction et un point-virgule ";" doit être ajouté après END IF pour indiquer la fin de l'instruction. est vrai pour d'autres instructions telles que CASE, LOOP, etc.

Tutoriels associés : Tutoriel vidéo MySQL

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!

Étiquettes associées:
source:cnblogs.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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal