Резюме: в этой статье вы научитесь отображать значения NULL в другие значимые значения.
Dr.EFCodd, который является создателем реляционной модели для базы данных, представил эту концепцию NULL в теории реляционных баз данных. Согласно Dr.EFCodd, NULL означает неизвестное значение или недостающая информацию.
MySQL также поддерживает NULL, которые представляют концепцию отсутствующей или неприменимой информации.
В таблице базы данных вы храните данные, которые содержат значения NULL. Когда вы предоставляете данные пользователям в форме отчетов, показывать NULL значения не имеет смысла.
Чтобы сделать отчеты более читабельными и понятными, необходимо отображать значения NULL в виде других значений, таких как неизвестные, отсутствующие или недоступные (нет данных). Для этого вы можете использовать функцию IF.
Синтаксис функции IF следующий:
IF(exp,exp_result1,exp_result2);
Если значение exp имеет TRUE (когда exp <> 0 и exp <> NULL), то функция IF возвращает значение из в противном случае exp_result1 возвращает значение exp_result2.
Возвращается значение функции IF может быть строка или число, в зависимости от выражений exp_result1 и exp_result2.
Давайте потренируемся с некоторыми примерами, чтобы лучше понять.
Мы будем работать с таблицей customers в примере базы данных.
Ниже приведены частичные данные в таблице customers, которая включает в себя customername state и country:
SELECT customername, state, country FROM customers ORDER BY country;
Значения состояния недоступны для некоторых клиентов. Вы можете использовать функцию IF для отображения значения NULL как N/A:
SELECT customername, IF(state IS NULL, 'N/A', state) state, country FROM customers ORDER BY country;
Помимо функции IF, MySQL предоставляет функцию IFNULL, которая позволяет NULL напрямую обрабатывать значения. Ниже приведен синтаксис функции IFNULL:
IFNULL(exp,exp_result);
Функция IFNULL возвращает значение выражения exp_result, если exp вычисляется в значение NULL, в противном случае, он возвращает значение выражения exp.
В следующем запросе функция IFNULL отображается NULL как неизвестная следующим образом:
SELECT customername, IFNULL(state,"N/A")state, country FROM customers ORDER BY country;
В этой статье вы узнали, как использовать функцию IF и IFNULL для отображения значений NULL на других более значимых значения для представления данных в читаемом виде.