isnull, ifnull, nullif vartojimas yra toks:
isnull(expr) naudojimas:Jei išraiška yra neapibrėžta, tada isnull() grąžina reikšmę 1, kitu atveju grąžina 0. mysql> pasirinkite isnull(1+1); -> 0 mysql> pasirinkite isnull(1/0); -> 1 Naudoti = nulinių reikšmių palyginimams paprastai yra neteisinga.
Funkcija isnull() turi tas pačias charakteristikas kaip ir is null palyginimo operatorius. Žr. pastabą apie yra neapibrėžta.
IFNULL(expr1,expr2) naudojimas:
Jei expr1 nėra NULL, grąžinama IFNULL() reikšmė yra expr1; Kitu atveju jis grąžina reikšmę išraiška2. IFNULL() grąžina skaičių arba eilutę, atsižvelgiant į kontekstą, kuriame jis naudojamas.
mysql> PASIRINKITE IFNULL(1,0); -> 1 mysql> PASIRINKITE IFNULL(NULL,10); -> 10 mysql> PASIRINKITE IFNULL(1/0,10); -> 10 mysql> PASIRINKTI IFNULL(1/0;'taip');
-> "Taip"
Numatytoji IFNULL(expr1,expr2) rezultato reikšmė yra "bendresnė" iš dviejų išraiškų STRING, REAL arba SVEIKASIS SKAIČIUS。 Tarkime, situacija, kai išraiška pagrįsta lentelė arba MySQL turi saugoti grąžinamą reikšmę IFNULL() laikinoje lentelėje vidinėje atmintyje: CREATE TABLE tmp SELECT IFNULL(1,'test') AS test; Šiame pavyzdyje bandymo stulpelis yra CHAR(4) tipo.
NULLIF(expr1,expr2) naudojimas: Jei išraiška1 = expr2 yra true, tada grąžinama reikšmė yra NULL, kitu atveju grąžinama reikšmė yra expr1. Tai tas pats, kas CASE WHEN expr1 = expr2 THEN NULL ELSE expr1 END yra tas pats. mysql> PASIRINKTI NULLIF(1,1);
-> NULL mysql> PASIRINKITE NULLIF(1,2); -> 1 Jei parametrai nėra vienodi, tada MySQL gauna reikšmę expr1 du kartus.
|