Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 15127|Ответ: 0

[Источник] Использование IFNULL, NULLIF и ISNULL

[Скопировать ссылку]
Опубликовано 11.05.2018 13:37:59 | | |
Использование isnull, ifnull, nullif следующее:

Использование isnull (expr):Если expr равен null, то isnull() возвращает значение 1, иначе возвращает 0.
MySQL> выберите IsnUll(1+1);
-> 0
mysql> выберите Isnull(1/0);
-> 1
Использование = для сравнения нулевых значений обычно неверно.

Функция isnull() обладает некоторыми из тех же характеристик, что и оператор сравнения нуля is. См. примечание о null.

Использование IFNULL(expr1,expr2):

Если expr1 не NULL, возвратное значение IFNULL() равно expr1;
В противном случае он возвращает значение expr2. IFNULL() возвращает либо число, либо строку, в зависимости от контекста, в котором она используется.

mysql> ВЫБРАТЬ IFNULL(1,0);
-> 1
mysql> ВЫБРАТЬ IFNULL(NULL,10);
-> 10
mysql> SELECT 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 дважды.






Предыдущий:Тест производительности аппаратного обеспечения серверного процессора
Следующий:При использовании MySQL для обработки более миллиона уровней данных необходимо знать несколько здравых смыслов
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com