Użycie słów isnull, ifnull, nullif jest następujące:
Użycie isnull(expr):Jeśli expr jest null, to isnull() zwraca wartość 1, w przeciwnym razie zwraca 0. mysql> select isnull(1+1); -> 0 mysql> select isnull(1/0); -> 1 Użycie = dla porównań wartości zerowych jest zazwyczaj błędne.
Funkcja isnull() dzieli niektóre te same cechy co operator porównania nulowego is . Zobacz notatkę o jest null.
Użycie IFNULL (expr1,expr2):
Jeśli expr1 nie jest NULL, wartość zwrotu IFNULL() to expr1; W przeciwnym razie zwraca wartość expr2. IFNULL() zwraca albo liczbę, albo ciąg znaków, w zależności od kontekstu, w którym jest używany.
mysql> SELECT IFNULL(1,0); -> 1 mysql> SELECT IFNULL(NULL,10); -> 10 mysql> SELECT IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0,'tak');
-> 'tak'
Domyślna wartość wynikowa dla IFNULL(expr1,expr2) to bardziej "ogólna" z tych dwóch wyrażeń, w kolejności STRING, REAL lub INTEGER。 Załóżmy sytuację, w której tabela oparta na wyrażeniach, czyli MySQL, musi przechowywać wartość zwrotu IFNULL() w tymczasowej tabeli w pamięci wewnętrznej: CREATE TABLE tmp SELECT IFNULL(1,'test') AS test; W tym przykładzie kolumna testowa ma typ CHAR(4).
Użycie NULLIF(expr1,expr2): Jeśli expr1 = expr2 jest prawdziwe, wtedy wartość zwrotu to NULL, w przeciwnym razie wartość zwrotu to expr1. Jest to takie samo co PRZYPADEK, GDY expr1 = expr2 TO NULL ELSE expr1 KONIEC jest taki sam. mysql> SELECT NULLIF(1,1);
-> NULL mysql> SELECT NULLIF(1,2); -> 1 Jeśli parametry nie są równe, MySQL otrzymuje wartość expr1 dwukrotnie.
|