Maison > base de données > tutoriel mysql > Série Mysql (10) Jugement conditionnel Mysql

Série Mysql (10) Jugement conditionnel Mysql

黄舟
Libérer: 2017-01-22 16:55:34
original
1334 Les gens l'ont consulté

sélectionnez *,if(sva=1,"male","female") comme ssva à partir de taname où sva<>""

12.2. Fonction de flux de contrôle
valeur CASE WHEN [comparer -value] ALORS résultat [WHEN [compare-value] ALORS résultat ...] [ELSE result] END CASE WHEN [condition] ALORS résultat [WHEN [condition] ALORS résultat ...] [ELSE result] END
à 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.

MySQL> SELECT CASE 1 WHEN 1 THEN one
    ->     WHEN 2 THEN two ELSE more END;
        -> one
mysql> SELECT CASE WHEN 1>0 THEN true ELSE false END;
        -> true
mysql> SELECT CASE BINARY B
    ->     WHEN a THEN 1 WHEN b THEN 2 END;
        -> NULL
Copier après la connexion

Le type de valeur de retour par défaut d'une expression CASE est tout type de collection compatible de valeur de retour, mais la situation spécifique dépend du contexte dans lequel elle est utilisée. S'il est utilisé dans un contexte de chaîne, renvoie la chaîne résultante. S'il est utilisé dans un contexte numérique, le résultat est renvoyé sous forme de valeur décimale, réelle ou entière.

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

mysql> SELECT IF(1>2,2,3);
        -> 3
mysql> SELECT IF(1<2,yes ,no);
        -> yes
mysql> SELECT IF(STRCMP(test,test1),no,yes);
        -> no
Copier après la connexion

Si un seul parmi expr2 ou expr3 est explicitement NULL, le type de résultat de la fonction IF() est le type de résultat d'une expression non NULL.

expr1 est évalué comme une valeur entière, c'est-à-dire que si vous validez une valeur à virgule flottante ou une valeur de chaîne, vous devez utiliser des opérations de comparaison pour vérifier.

mysql> SELECT IF(0.1,1,0);
        -> 0
mysql> SELECT IF(0.1<>0,1,0);
        -> 1
Copier après la connexion

Dans le premier exemple présenté, IF(0.1) renvoie 0 car 0,1 est converti en valeur entière, provoquant un test pour IF(0). Ce n’est peut-être pas la situation que vous souhaitez. Dans le deuxième exemple, la comparaison vérifie la valeur à virgule flottante d'origine pour voir si elle est différente de zéro. Utilisez des nombres entiers pour les résultats de comparaison. Le type de retour par défaut de

IF() (ceci est important lorsqu'il est stocké dans une table temporaire) est calculé comme suit :

expression
valeur de retour

La valeur de retour de expr2 ou expr3 est une chaîne.
String

La valeur de retour de expr2 ou expr3 est une valeur à virgule flottante.
Virgule flottante

La valeur de retour de expr2 ou expr3 est un entier.
Entier

Si expr2 et expr3 sont toutes deux des chaînes et que l'une des chaînes est sensible à la casse, le résultat renvoyé est sensible à la casse.
http://blog.knowsky.com/
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é.

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

La valeur de résultat par défaut de IFNULL(expr1,expr2) est la plus "générale" des deux expressions, dans l'ordre STRING, REAL ou INTEGER. Supposons le cas d'une table basée sur une expression, ou MySQL doit stocker la valeur de retour de IFNULL() dans une table temporaire en mémoire :

CREATE TABLE tmp SELECT IFNULL(1,test) AS test;
Copier après la connexion

Dans cet exemple, la colonne de test est de type CHAR( 4 ).

NULLIF(expr1,expr2)
Si expr1 = expr2 est vrai, la valeur de retour est NULL, sinon la valeur de retour est expr1. C'est la même chose que CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END.

mysql> SELECT NULLIF(1,1);
        -> NULL
mysql> SELECT NULLIF(1,2);
        -> 1
Copier après la connexion

Notez que si les paramètres ne sont pas égaux, la valeur obtenue deux fois par MySQL est expr1

Ce qui précède est le contenu de la série Mysql (10) Jugement conditionnel Mysql Pour plus d'informations. contenu, veuillez suivre le site Web PHP chinois (www.php.cn) !

Étiquettes associées:
source:php.cn
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