Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 15127|Отговор: 0

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

[Копирай линк]
Публикувано в 11.05.2018 г. 13:37:59 ч. | | |
Употребата на isnull, ifnull, nullif е следната:

Използване на isnull(експр):Ако expr е null, тогава isnull() връща стойност 1, в противен случай връща 0.
mySQL> Select IsnUll(1+1);
-> 0
mysql> Select IsnUll(1/0);
-> 1
Използването = за сравнения на нулеви стойности обикновено е грешно.

Функцията isnull() споделя някои от същите характеристики като оператора за нулево сравнение на is. Виж бележката за е null.

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

Ако expr1 не е NULL, връщаната стойност на IFNULL() е expr1;
В противен случай връща стойност expr2. IFNULL() връща или число, или низ, в зависимост от контекста, в който се използва.

mysql> SELECT IFNULL(1,0);
-> 1
mysql> SELECT 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);

-> НУЛ
mysql> SELECT NULLIF(1,2);
-> 1
Ако параметрите не са равни, MySQL получава стойността expr1 два пъти.






Предишен:Тест за хардуерна производителност на сървърния процесор
Следващ:Когато използвате MySQL за обработка на повече от един милион нива данни, има няколко здрави разума, които трябва да се знаят
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com