Resumo : Este tutorial apresenta a função ISNULL do MySQL e como usá-la para lidar com valores NULL.
Introdução à função MySQL ISNULL
A ISNULL
função recebe um argumento e testa se esse argumento é NULL
ou não. A ISNULL
função retorna 1 se o argumento for NULL
, caso contrário, retorna 0.
O seguinte ilustra a sintaxe da ISNULL
função:
ISNULL(expr)
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Considere os seguintes exemplos:
SELECT ISNULL(NULL); -- 1
SELECT ISNULL(1); -- 0
SELECT ISNULL(1 + NULL); -- 1;
SELECT ISNULL(1 / 0 ); -- 1;
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Observe que se você estiver tentando encontrar uma alternativa do MySQL para ISNULL
a função do Microsoft SQL Server, você deve usar a função do MySQL IFNULL
. Porque a ISNULL
função MySQL é diferente da ISNULL
função do Microsoft SQL Server.
Função MySQL ISNULL e operador IS NULL
A ISNULL
função compartilha alguns comportamentos com o IS NULL
operador. Por exemplo, se você tiver uma DATE
coluna declarada como NOT NULL
, poderá encontrar a data especial '0000-00-00'
usando a seguinte instrução:
SELECT
*
FROM
table_name
WHERE
ISNULL(date);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Observe que o MySQL implementou esse recurso propositalmente para suportar aplicações ODBC porque ODBC não suporta valores de data especiais '0000-00-00'
.
Vejamos um exemplo.
Primeiro, crie uma nova tabela com o seguinte nome special_isnull
:
CREATE TABLE special_isnull (
start_date DATE NOT NULL
);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Segundo, insira alguns dados na special_isnull
tabela:
INSERT INTO special_isnull(start_date)
VALUES('2000-01-01'),
('0000-00-00');
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
Terceiro, consulte os dados da special_isnull
tabela usando a ISNULL
função:
SELECT
*
FROM
special_isnull
WHERE
ISNULL(start_date);
Linguagem de código: SQL (linguagem de consulta estruturada) ( sql )
A consulta retornou uma linha, embora você esperasse que ela retornasse um conjunto de resultados vazio.
Quando você deseja negar o IS NULL
operador, você usa o NOT
operador, ou seja IS NOT NULL
,. No entanto, para a ISNULL
função, você usa !ISNULL
.
Neste tutorial, você aprendeu como usar a função MySQL ISNULL e seu comportamento especial para manipular NULL
valores.