Die Verwendung von isnull, ifnull, nullif ist wie folgt:
Verwendung von isnull(expr):Ist expr null, dann gibt isnull() den Wert 1 zurück, ansonsten gibt es 0 zurück. MySQL> select isnull(1+1); -> 0 mysql> select isnull(1/0); -> 1 Die Verwendung von = für Nullwertvergleiche ist meist falsch.
Die isnull()-Funktion teilt einige der gleichen Eigenschaften wie der is null Vergleichsoperator. Siehe die Notiz über ist null.
Verwendung von IFNULL(expr1,expr2):
Wenn expr1 nicht NULL ist, ist der Rückgabewert von IFNULL() expr1; Andernfalls gibt er einen Wert von expr2 zurück. IFNULL() gibt je nach Kontext entweder eine Zahl oder eine Zeichenkette zurück.
mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0, 'ja');
-> 'ja'
Der Standardergebniswert für IFNULL(expr1,expr2) ist der "generischere" der beiden Ausdrücke, in der Reihenfolge STRING, REAL oder INTEGER。 Angenommen, eine ausdrucksbasierte Tabelle oder MySQL muss den Rückgabewert von IFNULL() in einer temporären Tabelle im internen Speicher speichern: TABELLE ERSTELLEN tmp AUSWÄHLEN IFNULL(1,'test') ALS test; In diesem Beispiel ist die Testspalte vom Typ CHAR(4).
Verwendung von NULLIF(expr1,expr2): Wenn expr1 = expr2 ist wahr, dann ist der Rückgabewert NULL, ansonsten ist der Rückgabewert expr1. Dies ist dasselbe wie CASE WHEN expr1 = expr2 DANN IST NULL ELSE expr1 END dasselbe. mysql> SELECT NULLIF(1,1);
-> NULL mysql> SELECT NULLIF(1,2); -> 1 Wenn die Parameter nicht gleich sind, erhält MySQL den Wert expr1 zweimal.
|