Het gebruik van isnull, ifnull, nullif is als volgt:
Gebruik van isnull(expr):Als expr null is, dan geeft isnull() een waarde van 1 terug, anders geeft het 0 terug. MySQL> select isnull(1+1); -> 0 MySQL> selecteer isnull(1/0); -> 1 Het gebruik van = voor nulwaardevergelijkingen is meestal onjuist.
De isnull()-functie deelt enkele van dezelfde kenmerken als de is null-vergelijkingsoperator. Zie de notitie over is null.
Gebruik van IFNULL(expr1,expr2):
Als expr1 niet NULL is, is de retourwaarde van IFNULL() expr1; Anders geeft het een waarde van expr2 terug. IFNULL() geeft ofwel een getal of een string terug, afhankelijk van de context waarin het wordt gebruikt.
mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECTEER IFNULL(NULL,10); -> 10 mysql> SELECTEER IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0,'ja');
-> 'ja'
De standaardresultaatwaarde voor IFNULL(expr1,expr2) is de meer "generieke" van de twee expressies, in de volgorde STRING, REAL of INTEGER。 Stel dat een situatie waarin een expressie-gebaseerde tabel, of MySQL, de retourwaarde van IFNULL() moet opslaan in een tijdelijke tabel in het interne geheugen: MAAK EEN TABEL AAN TMP SELECTEER IFNULL(1,'TEST') ALS TEST; In dit voorbeeld is de testkolom van het type CHAR(4).
Gebruik van NULLIF(expr1,expr2): Als expr1 = expr2 waar is, dan is de retourwaarde NULL, anders is de retourwaarde expr1. Dit is hetzelfde als CASE WHEN expr1 = expr2 DAN IS NULL ELSE expr1 END hetzelfde. mysql> SELECT NULLIF(1,1);
-> NULL mysql> SELECT NULLIF(1,2); -> 1 Als de parameters niet gelijk zijn, krijgt MySQL de waarde expr1 twee keer.
|