Bruken av isnull, ifnull, nullif er som følger:
Bruk av isnull(expr):Hvis expr er null, returnerer isnull() verdien 1, ellers returnerer den 0. mysql> select isnull(1+1); -> 0 MySQL> select isnull(1/0); -> 1 Å bruke = for nullverdisammenligninger er vanligvis feil.
isnull()-funksjonen deler noen av de samme egenskapene som is null-sammenligningsoperatoren. Se notatet om er null.
Bruk av IFNULL(expr1,expr2):
Hvis expr1 ikke er NULL, er returverdien til IFNULL() expr1; Ellers returnerer den verdien expr2. IFNULL() returnerer enten et tall eller en streng, avhengig av konteksten den brukes i.
mysql> VELG IFNULL(1,0); -> 1 mysql> VELG IFNULL(NULL,10); -> 10 mysql> VELG IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0, 'ja');
-> 'ja'
Standardresultatet for IFNULL(expr1,expr2) er det mer "generiske" av de to uttrykkene, i rekkefølgen STRING, REAL eller INTEGER。 Anta en situasjon der en uttrykksbasert tabell, eller MySQL, må lagre returverdien til IFNULL() i en midlertidig tabell i internminnet: OPPRETT TABELL tmp VELG HVIS NULL(1,'test') SOM test; I dette eksempelet er testkolonnen av typen CHAR(4).
Bruk av NULLIF(expr1,expr2): Hvis expr1 = expr2 er sann, da er returverdien NULL, ellers er returverdien expr1. Dette er det samme som TILFELLE NÅR expr1 = expr2 DA ER NULL ELSE expr1 END den samme. mysql> SELECT NULLIF(1,1);
-> NULL mysql> SELECT NULLIF(1,2); -> 1 Hvis parameterne ikke er like, får MySQL verdien expr1 to ganger.
|