Heim  >  Artikel  >  Datenbank  >  Eine kurze Diskussion zur detaillierten Erklärung der Funktion ifnull() ähnlich der Funktion nvl() in MySQL

Eine kurze Diskussion zur detaillierten Erklärung der Funktion ifnull() ähnlich der Funktion nvl() in MySQL

黄舟
黄舟Original
2017-03-06 13:50:162139Durchsuche

Der folgende Editor bietet Ihnen eine kurze Diskussion der ifnull()-Funktion, die der nvl()-Funktion in MySQL ähnelt. Der Herausgeber findet es ziemlich gut, deshalb werde ich es jetzt mit Ihnen teilen und es allen als Referenz geben. Folgen wir dem Editor und werfen wir einen Blick darauf.

Empfohlene verwandte MySQL-Video-Tutorials: „MySQL-Tutorial

IFNULL(expr1,expr2)

If expr1 Nicht NULL, IFNULL() gibt expr1 zurück, andernfalls gibt es expr2 zurück. IFNULL() gibt je nach Kontext, in dem es verwendet wird, einen Zahlen- oder Stringwert zurück.

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)

Wenn expr1 TRUE ist (expr1a8093152e673feb7aba1828c435320940 und expr1a8093152e673feb7aba1828c43532094NULL), dann gibt IF() expr2 zurück, andernfalls gibt es expr3 zurück. IF() gibt je nach Kontext, in dem es verwendet wird, einen numerischen oder einen String-Wert zurück.

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 wird als ganzzahliger Wert ausgewertet. Das bedeutet, dass Sie beim Testen von Gleitkomma- oder Zeichenfolgenwerten eine Vergleichsoperation verwenden sollten.

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

Im ersten Fall oben gibt IF(0.1) 0 zurück, da 0.1 in einen ganzzahligen Wert umgewandelt wird, wodurch IF(0) getestet wird. Das ist möglicherweise nicht das, was Sie erwarten. Im zweiten Fall testet der Vergleich den ursprünglichen Gleitkommawert, um festzustellen, ob er ungleich Null ist, und das Ergebnis des Vergleichs wird als Ganzzahl verwendet.

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

Die erste Version gibt das Ergebnis zurück, wobei Wert=Vergleichswert ist. In der zweiten Version wird das Ergebnis zurückgegeben, wenn die erste Bedingung wahr ist. Wenn kein passender Ergebniswert vorhanden ist, wird das Ergebnis im Ergebnis nach ELSE zurückgegeben. Wenn kein ELSE-Teil vorhanden ist, wird NULL zurückgegeben.

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

Das Obige ist eine detaillierte Erklärung der Funktion ifnull(), die der Funktion nvl() in MySQL ähnelt. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn). )!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn