Використання isnull, ifnull, nullif виглядає так:
Використання isnull(expr):Якщо expr дорівнює нулю, то isnull() повертає значення 1, інакше — 0. mysql> вибрати isnull(1+1); -> 0 mysql> вибрати Isnull(1/0); -> 1 Використовувати = для порівняння нульових значень зазвичай неправильно.
Функція isnull() має деякі з тих самих характеристик, що й оператор нульового порівняння. Дивіться примітку про null.
Використання IFNULL(expr1,expr2):
Якщо expr1 не дорівнює NULL, повернене значення IFNULL() дорівнює expr1; Інакше повертається значення expr2. IFNULL() повертає або число, або рядок, залежно від контексту, в якому він використовується.
mysql> ВИБРАТИ IFNULL(1,0); -> 1 mysql> ВИБРАТИ IFNULL(NULL,10); -> 10 mysql> ВИБРАТИ IFNULL(1/0,10); -> 10 mysql> SELECT IFNULL(1/0, «так»);
-> «так»
Значення результату за замовчуванням для IFNULL(expr1,expr2) є більш «загальним» із двох виразів, у порядку STRING, REAL або INTEGER。 Припустимо, ситуація, коли таблиця на основі виразів або MySQL повинна зберігати повернене значення IFNULL() у тимчасовій таблиці внутрішньої пам'яті: CREATE TABLE tmp SELECT IFNULL(1,'test') AS test; У цьому прикладі тестовий стовпець має тип CHAR(4).
Використання NULLIF(expr1,expr2): Якщо expr1 = expr2 істинне, тоді повернене значення дорівнює NULL, інакше повернене значення — expr1. Це те саме, що CASE WHEN expr1 = expr2 ТОДІ NULL ELSE expr1 END той самий. mysql> SELECT NULLIF (1,1);
-> NULL mysql> ВИБРАТИ NULLIF(1,2); -> 1 Якщо параметри не однакові, MySQL отримує значення expr1 двічі.
|