Maison  >  Article  >  base de données  >  Une brève discussion sur l'explication détaillée de la fonction ifnull() similaire à la fonction nvl() dans Mysql

Une brève discussion sur l'explication détaillée de la fonction ifnull() similaire à la fonction nvl() dans Mysql

黄舟
黄舟original
2017-03-06 13:50:162174parcourir

L'éditeur suivant vous présentera une brève discussion de la fonction ifnull() similaire à la fonction nvl() dans Mysql. L'éditeur le trouve plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence pour tout le monde. Suivons l'éditeur et jetons un coup d'œil.

Tutoriels vidéo mysql associés recommandés : "tutoriel mysql"

IFNULL(expr1,expr2)

Si expr1 Non NULL, IFNULL() renvoie expr1, sinon elle renvoie expr2. IFNULL() renvoie une valeur numérique ou chaîne, selon le contexte dans lequel il est utilisé.

mysql> select IFNULL(1,0);
    -> 1
mysql> select IFNULL(0,10);
    -> 0
mysql> select IFNULL(1/0,10);
    -> 10
mysql> select IFNULL(1/0,'yes');
    -> 'yes'
 
IF(expr1,expr2,expr3)

Si expr1 est VRAI (expr1a8093152e673feb7aba1828c435320940 et expr1a8093152e673feb7aba1828c43532094NULL), alors IF() renvoie expr2, sinon il renvoie expr3. IF() renvoie une valeur numérique ou chaîne, selon le contexte dans lequel il est utilisé.

mysql> select IF(1>2,2,3);
    -> 3
mysql> select IF(1<2,&#39;yes&#39;,&#39;no&#39;);
    -> &#39;yes&#39;
mysql> select IF(strcmp(&#39;test&#39;,&#39;test1&#39;),&#39;yes&#39;,&#39;no&#39;);
    -> &#39;no&#39;

expr1 est évalué comme une valeur entière, ce qui signifie que si vous testez des valeurs à virgule flottante ou une chaîne, vous devez utiliser une opération de comparaison pour le faire.

mysql> select IF(0.1,1,0);
    -> 0
mysql> select IF(0.1<>0,1,0);
    -> 1

Dans le premier cas ci-dessus, IF(0.1) renvoie 0 car 0.1 est transformé en valeur entière, provoquant le test de IF(0). Ce n'est peut-être pas ce à quoi vous vous attendez. Dans le second cas, la comparaison teste la valeur à virgule flottante d'origine pour voir si elle est différente de zéro, et le résultat de la comparaison est utilisé sous forme d'entier.

CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END 
  
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END

La première version renvoie le résultat, où value=compare-value. Dans la deuxième version, si la première condition est vraie, le résultat est renvoyé. S'il n'y a pas de valeur de résultat correspondante, le résultat après ELSE est renvoyé. S'il n'y a pas de partie ELSE, alors NULL est renvoyé.

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

Ce qui précède est une explication détaillée de la fonction ifnull() similaire à la fonction nvl() dans Mysql Pour plus de contenu connexe, veuillez prêter attention au site Web PHP chinois (www.php.cn). )!

Déclaration:
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