Brugen af isnull, ifnull, nullif er som følger:
Brug af isnull(expr):Hvis expr er null, returnerer isnull() værdien 1, ellers returnerer den 0. MySQL> vælg isnull(1+1); -> 0 MySQL> select isnull(1/0); -> 1 At bruge = til nulværdisammenligninger er som regel forkert.
isnull()-funktionen deler nogle af de samme egenskaber som is null-sammenligningsoperatoren. Se noten om er null.
Brug af IFNULL(expr1,expr2):
Hvis expr1 ikke er NULL, er returværdien af IFNULL() expr1; Ellers returnerer den en værdi på expr2. IFNULL() returnerer enten et tal eller en streng, afhængigt af den kontekst, det bruges i.
mysql> VÆLG IFNULL(1,0); -> 1 mysql> VÆLG IFNULL(NULL,10); -> 10 mysql> VÆLG IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0, 'ja');
-> 'ja'
Standardresultatværdien for IFNULL(expr1,expr2) er den mere "generiske" af de to udtryk, i rækkefølgen STRING, REAL eller INTEGER。 Antag en situation, hvor en udtryksbaseret tabel eller MySQL skal gemme returværdien af IFNULL() i en midlertidig tabel i intern hukommelse: OPRET TABEL tmp VÆLG IFNULL(1,'test') SOM test; I dette eksempel er testkolonnen af typen CHAR(4).
Brug af NULLIF(expr1,expr2): Hvis expr1 = expr2 er sand, så er returværdien NULL, ellers er returværdien expr1. Dette er det samme som TILFÆLDE NÅR expr1 = expr2 SÅ ER NULL ELSE expr1 END den samme. mysql> SELECT NULLIF(1,1);
-> NULL mysql> SELECT NULLIF(1,2); -> 1 Hvis parametrene ikke er ens, får MySQL værdien expr1 to gange.
|