Функция MySQL IFNULL

В этой статье мы расскажем о функции MySQL IFNULL. Это удобная функция для обработки значений NULL.

Функция MySQL IFNULL - общие сведения

IFNULL является одной из функций потока управления MySQL, которая принимает два аргумента и возвращает первый, если он не равен NULL. Иначе она возвращает второй аргумент.

В качестве аргументов могут выступать конкретные значения или выражения. Ниже приведен синтаксис функции IFNULL:

IFNULL(выражение_1,выражение_2);

FNULL возвращает выражение_1, если выражение_1 не равно NULL; в противном случае возвращается выражение_2.

Если вы хотите вернуть значение, исходя из соответствия условию TRUE или FALSE, а не NULL, вам следует использовать функцию IF.

Примеры применения функции MySQL IFNULL

Посмотрите следующие примеры применения функции MySQL IFNULL:

SELECT IFNULL(1,0); -- возвращает 1

Посмотреть код

SELECT IFNULL('',1); -- возвращает ''

Посмотреть код

SELECT IFNULL(NULL,'IFNULL function'); -- возвращает IFNULL function

Посмотреть код

Как это работает:

  • IFNULL (1,0) возвращает 1, потому что 1 не равно NULL;
  • IFNULL ('', 1) возвращает '', потому что строка не является NULL;
  • IFNULL (NULL, «IFNULL function») возвращает строку IFNULL function, потому что первый аргумент - NULL.

Рассмотрим практический пример использования функции MySQL IFNULL.

Сначала создайте новую таблицу под названием contacts, используя следующий запрос:

CREATE TABLE IF NOT EXISTS contacts (
    contactid INT AUTO_INCREMENT PRIMARY KEY,
    contactname VARCHAR(20) NOT NULL,
    bizphone VARCHAR(15),
    homephone VARCHAR(15)
);

Запись каждого контакта содержит имя, рабочий и домашний телефон. Затем вставьте данные в таблицу contacts:

INSERT INTO contacts(contactname,bizphone,homephone)
VALUES('John Doe','(541) 754-3009',NULL),
      ('Cindy Smith',NULL,'(541) 754-3110'),
      ('Sue Greenspan','(541) 754-3010','(541) 754-3011'),
      ('Lily Bush',NULL,'(541) 754-3111');

Для некоторых контактов указан только домашний или рабочий телефон. Чтобы получить все имена контактов и телефоны из таблицы, используем следующий запрос:

SELECT 
    contactName, bizphone, homephone
FROM
    contacts;

Посмотреть код

Примеры применения функции MySQL IFNULL

Было бы неплохо, если бы мы могли получить домашний телефон контакта, если рабочий телефон недоступен. В этом нам поможет функция MySQL IFNULL. Она вернет домашний телефон, если рабочий телефон - NULL.

Используйте следующий запрос, чтобы получить имена и телефоны всех контактов:

SELECT 
    contactname, IFNULL(bizphone, homephone) phone
FROM
    contacts;

Посмотреть код

Примеры применения функции MySQL IFNULL - 2

Необходимо избегать использования функции в операторе WHERE, поскольку это уменьшает производительность запроса. И вам может показаться, что MySQL IFNULL не работает.

Если вы хотите проверить, является ли значение NULL или нет, можно использовать в операторе WHERE IS NULL или IS NOT NULL.

В этой статье мы познакомились с функцией MySQL IFNULL и узнали, как использовать ее в запросах.

Пожалуйста, оставляйте свои комментарии по текущей теме статьи. За комментарии, подписки, дизлайки, лайки, отклики низкий вам поклон!

Пожалуйста, опубликуйте свои отзывы по текущей теме статьи. За комментарии, подписки, отклики, лайки, дизлайки низкий вам поклон!

Вадим Дворниковавтор-переводчик статьи «MySQL IFNULL»