Použití slov isnull, ifnull, nullif je následující:
Použití isnull(expr):Pokud je expr null, pak isnull() vrátí hodnotu 1, jinak vrací 0. mysql> select isnull(1+1); -> 0 mysql> select isnull(1/0); -> 1 Použití = pro srovnání nulových hodnot je obvykle nesprávné.
Funkce isnull() sdílí některé stejné vlastnosti jako operátor porovnání is nul. Viz poznámka o je null.
Použití IFNULL (expr1,expr2):
Pokud expr1 není NULL, vrácená hodnota IFNULL() je expr1; Jinak vrací hodnotu expr2. IFNULL() vrací buď číslo, nebo řetězec, v závislosti na kontextu, ve kterém je použit.
mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0, 'ano');
-> 'ano'
Výchozí hodnota výsledku pro IFNULL(expr1,expr2) je více "obecný" z těchto dvou výrazů, v pořadí STRING, REAL nebo INTEGER。 Představme si situaci, kdy tabulka založená na výrazech, nebo MySQL, musí uložit návratovou hodnotu IFNULL() do dočasné tabulky ve vnitřní paměti: VYTVOŘIT TABULKU tmp VYBRAT IFNULL(1,'test') AS test; V tomto příkladu je testovací sloupec typu CHAR(4).
Použití NULLIF(expr1,expr2): Pokud expr1 = expr2 je pravdivá, pak je návratová hodnota NULL, jinak je návratová hodnota expr1. To je stejné jako PŘÍPAD, KDYŽ expr1 = expr2 PAK NULL ELSE expr1 END je stejný. mysql> SELECT NULLIF(1,1);
-> NULL mysql> SELECT NULLIF(1,2); -> 1 Pokud parametry nejsou stejné, MySQL získá hodnotu expr1 dvakrát.
|