Použitie slov isnull, ifnull, nullif je nasledovné:
Použitie isnull(expr):Ak je expr null, potom isnull() vráti hodnotu 1, inak vráti 0. mysql> select isnull(1+1); -> 0 mysql> select isnull(1/0); -> 1 Použitie = pre porovnanie nulových hodnôt je zvyčajne nesprávne.
Funkcia isnull() zdieľa niektoré rovnaké vlastnosti ako operátor porovnávania is null. Pozri poznámku o je null.
Použitie IFNULL (expr1,expr2):
Ak expr1 nie je NULL, návratová hodnota IFNULL() je expr1; Inak vráti hodnotu expr2. IFNULL() vráti buď číslo alebo reťazec, v závislosti od kontextu, v ktorom sa používa.
mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0, 'áno');
-> 'áno'
Predvolená hodnota výsledku pre IFNULL(expr1,expr2) je "všeobecnejší" z týchto dvoch výrazov, v poradí STRING, REAL alebo INTEGER。 Predstavme si situáciu, keď tabuľka založená na výrazoch, alebo MySQL, musí uložiť návratovú hodnotu IFNULL() do dočasnej tabuľky vo vnútornej pamäti: VYTVORIŤ TABUĽKU tmp VYBRAŤ IFNULL(1,'test') AS test; V tomto príklade je testovací stĺpec typu CHAR(4).
Použitie NULLIF(expr1,expr2): Ak expr1 = expr2 je pravda, potom návratová hodnota je NULL, inak je návratová hodnota expr1. To je rovnaké ako PRÍPAD KEĎ expr1 = expr2 POTOM NULL ELSE expr1 KONIEC je rovnaký. mysql> SELECT NULLIF(1,1);
-> NULL mysql> SELECT NULLIF(1,2); -> 1 Ak parametre nie sú rovnaké, MySQL získa hodnotu expr1 dvakrát.
|