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
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
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
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
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;
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
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 (m.sbmmt.com) !