MySQL Проверить, является ли столбец нулевым
Введение
Существует несколько причин, по которым вы можете захотеть проверить, является ли столбец NULL
в MySQL:
Чтобы отфильтровать результаты запроса — Вы можете исключить строки с
значениями NULL
из результатов запроса. Например, вы можете получить список всех пользователей, предоставивших свои адреса электронной почты, но исключить тех, кто этого не сделал.К обновить или удалить строки . Возможно, вы захотите обновить или удалить только те строки, которые имеют значения
NULL
в определенном столбце. Например, вы можете установить значение заполнителя для всех пользователей, которые его не предоставили.Для обработки отсутствующих данных — Во многих случаях значения
NULL
могут указывать на ошибочно отсутствующие или неизвестные данные. Проверка значенийNULL
может помочь вам правильно обрабатывать эти данные в вашем приложении.Чтобы обеспечить целостность данных . Возможно, вы захотите убедиться, что некоторые столбцы не являются
NULL
, чтобы поддерживать целостность ваших данных. Например, вы можете захотеть, чтобы у всех пользователей был адрес электронной почты, отличный отNULL
.
В целом, проверка значений NULL
может быть важной частью работы с данными в MySQL.
В этой короткой статье мы рассмотрим, что такое
NULL
в MySQL и как проверить, равен ли столбец 9.0005 НОЛЬ . Кроме того, мы рассмотрим пример запроса, который находит какNULL
, так и пустые поля в указанном столбце.
Что такое
NULL в MySQL В MySQL NULL
— это специальное значение, представляющее отсутствие значения . Это не то же самое, что пустая строка или число 0, например.
Столбец в таблице MySQL может быть определен как NULL
, что означает, что он может хранить значений NULL
. Это отличается от столбца, который определен как NOT NULL
, что означает, что он не может хранить значения NULL
и должен получить значение при вставке новой строки в таблицу, чтобы не возникла ошибка.
Как проверить, является ли столбец
NULL в MySQL Теперь мы можем перейти к фактическому запросу, который отфильтрует все значений NULL
из примера столбца. Чтобы проверить, является ли столбец NULL
в MySQL, вы можете использовать оператор IS NULL
:
SELECT * FROM table_name WHERE column_name IS NULL;
Это вернет все строки из имя_таблицы
, где значение в имя_столбца
равно NULL
.
Вы также можете использовать оператор IS NOT NULL
для проверки значений, отличных от NULL
:
SELECT * FROM table_name WHERE column_name IS NOT NULL;
имя_таблицы
, где значение в имя_столбца
не равно NULL
. Примечание: Имейте в виду, что NULL
— это специальное значение в MySQL, которое представляет отсутствие значения. Это не то же самое, что пустая строка или число 0.
Кроме того, мы можем позаботиться обо всех специальных значениях, которые могут представлять отсутствие записи столбца ( NULL
, 0
и пустая строка) в одном запрос:
SELECT * FROM имя_таблицы ГДЕ имя_столбца IS NULL ИЛИ имя_столбца = '' ИЛИ имя_столбца = 0;
Это отфильтрует все строки из имя_таблицы
, где значение в имя_столбца
является одним из следующих: NULL
, 0
или пустая строка.
Заключение
В заключение, проверка того, является ли столбец пустым в MySQL, может быть выполнена с помощью оператора IS NULL
в операторе SELECT
. Этот оператор можно использовать в предложении WHERE
для фильтрации набора результатов и возврата только тех строк, в которых указанный столбец имеет значение NULL
.
Также можно использовать IS NOT NULL 9Оператор 0006 для возврата строк, в которых столбец не равен
NULL
. Важно отметить, что значения NULL
представляют отсутствующие или неизвестные данные и отличаются от нуля или пустой строки. Используя операторы IS NULL
и IS NOT NULL
, вы можете эффективно обрабатывать значения NULL
в своих запросах MySQL и гарантировать точность и значимость результатов.
4 способа заменить NULL другим значением в MySQL
В MySQL иногда вы не хотите, чтобы значения NULL возвращались как NULL
. Иногда вы хотите, чтобы значения NULL возвращались с другим значением, например «Н/Д», «Неприменимо», «Нет» или даже с пустой строкой «».
К счастью, в MySQL есть несколько способов сделать это.
Вот четыре:
- Функция
IFNULL()
- Функция
ОБЪЕДИНЕНИЕ()
- Функция
в сочетании сIS NULL
(илиIS NOT NULL
) оператор - Выражение
CASE
в сочетании с операторомIS NULL
(илиIS NOT NULL
)
Примеры этих опций приведены ниже.
Образец данных
Во-первых, давайте возьмем некоторые образцы данных:
USE Solutions; ВЫБЕРИТЕ код задачи Из задач;
Результат:
+----------+ | Код задачи | +----------+ | гар123 | | НУЛЕВОЙ | | НУЛЕВОЙ | | собака456 | | НУЛЕВОЙ | | кошка789| +----------+
Итак, у нас есть три значения NULL и три значения, отличные от NULL.
Функция IFNULL()
Судя по названию, это, вероятно, самый очевидный вариант замены значений NULL в MySQL. Эта функция в основном эквивалентна ISNULL()
в SQL Server.
Функция IFNULL()
позволяет указать два аргумента. Первый аргумент возвращается, только если он не равен NULL. Если он равен NULL, вместо него возвращается второй аргумент.
Вот пример использования IFNULL()
для нашего примера набора данных:
SELECT IFNULL(TaskCode, 'N/A') AS Result ИЗ Задачи;
Результат:
+--------+ | Результат | +--------+ | гар123 | | Н/Д | | Н/Д | | собака456 | | Н/Д | | кошка789 | +--------+
Здесь мы просто заменили значения NULL на Н/Д
Функция COALESCE()
Эта функция аналогична IFNULL()
функция, но немного другая. Эта функция соответствует стандарту ANSI SQL и широко используется в различных СУБД.
Это работает так: вы предоставляете столько аргументов, сколько вам нужно. COALESCE()
вернет первое значение в списке, отличное от NULL
, или NULL
, если нет значений, отличных от NULL
.
Вот так:
ВЫБРАТЬ ОБЪЕДИНИТЬ(TaskCode, 'N/A') AS Result ИЗ Задачи;
Результат:
+--------+ | Результат | +--------+ | гар123 | | Н/Д | | Н/Д | | собака456 | | Н/Д | | кошка789 | +--------+
Таким образом, мы получаем точно такой же результат, как и раньше.
Однако отличие этой функции в том, что, как уже упоминалось, вы можете предоставить список аргументов. Функция COALESCE()
будет принимать первое значение, отличное от NULL.
Например, мы можем добавить NULL
в качестве первого аргумента и поместите None
перед N/A
и посмотрите, что произойдет:
SELECT COALESCE(NULL, TaskCode, 'None', 'N/A') AS Result ИЗ Задачи;
Результат:
+--------+ | Результат | +--------+ | гар123 | | Нет | | Нет | | собака456 | | Нет | | кошка789 | +--------+
Он пропустил первый NULL
, как и ожидалось, затем он пропустил все значения NULL в столбец TaskCode
, прежде чем остановиться на None
. Значение Н/Д
не использовалось в этом случае, потому что Нет
было первым и это значение, отличное от NULL.
Функция IF() в сочетании с операторами IS NULL/IS NOT NULL
Операторы IS NULL
и IS NOT NULL
позволяют проверить значения NULL и представить другое значение в зависимости от результата.
Мы можем использовать эти операторы внутри функции
, чтобы возвращались значения, отличные от NULL, а значения NULL заменялись значением по нашему выбору.
Пример:
SELECT IF(TaskCode IS NOT NULL, TaskCode, 'N/A') AS Result ИЗ Задачи;
Результат:
+--------+ | Результат | +--------+ | гар123 | | Н/Д | | Н/Д | | собака456 | | Н/Д | | кошка789 | +--------+
Таким образом, тот же результат, что и с функциями IFNULL()
и COALESCE()
.
И, конечно, мы могли бы поменять местами IS NOT NULL
на IS NULL
.