Isnull, ifnull, nullif lietojums ir šāds:
isnull(expr) lietojums:Ja izteiksme ir nulle, tad isnull() atgriež vērtību 1, pretējā gadījumā tiek atgriezta vērtība 0. mysql> izvēlieties isnull(1+1); -> 0 mysql> izvēlieties isnull(1/0); -> 1 Nulles vērtību salīdzināšanai = izmantošana parasti ir nepareiza.
Funkcijai isnull() ir dažas no tām pašām īpašībām kā salīdzināšanas operatoram is null. Skatīt piezīmi par ir nulle.
IFNULL(expr1;expr2) lietošana:
Ja expr1 nav NULL, IFNULL() atgrieztā vērtība ir expr1; Pretējā gadījumā tiek atgriezta vērtība expr2. IFNULL() atgriež skaitli vai virkni atkarībā no konteksta, kurā tas tiek izmantots.
mysql> ATLASIET IFNULL(1,0); -> 1 mysql> ATLASIET IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0;'jā');
-> "jā"
IFNULL(expr1,expr2) noklusējuma rezultāta vērtība ir "vispārīgākā" no abām izteiksmēm secībā STRING, REAL vai VESELS SKAITLIS。 Pieņemsim, ka situācija, kad uz izteiksmēm balstītai tabulai vai MySQL ir jāsaglabā atgrieztā vērtība IFNULL() pagaidu tabulā iekšējā atmiņā: CREATE TABLE tmp SELECT IFNULL(1,'test') AS test; Šajā piemērā testa kolonnas tips ir CHAR(4).
NULLIF(expr1,expr2) lietojums: Ja izteiksme1 = expr2 ir true, tad atgrieztā vērtība ir NULL, pretējā gadījumā atgrieztā vērtība ir expr1. Tas ir tas pats, kas CASE WHEN expr1 = expr2 TAD NULL ELSE expr1 END ir tāds pats. mysql> SELECT NULLIF(1,1);
-> NULL mysql> ATLASIET NULLIF(1,2); -> 1 Ja parametri nav vienādi, tad MySQL divreiz saņem vērtību expr1.
|