MySQL IFNULL

Resumo : neste tutorial, você aprenderá sobre a função MySQL IFNULL , que é uma função de fluxo de controle muito útil para lidar com valores NULL.

Introdução à função MySQL IFNULL

A função MySQL IFNULLé uma das funções de fluxo de controle do MySQL que aceita dois argumentos e retorna o primeiro argumento se não for NULL. Caso contrário, a IFNULLfunção retornará o segundo argumento.

Os dois argumentos podem ser valores literais ou expressões.

O seguinte ilustra a sintaxe da IFNULLfunção:

IFNULL(expression_1,expression_2);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A IFNULLfunção retorna expression_1se expression_1não for NULL; caso contrário, ele retorna expression_2. O

A IFNULLfunção retorna uma string ou um número com base no contexto onde é usada.

Se você deseja retornar um valor baseado em TRUEou FALSEuma condição diferente de NULL, você deve usar a função SE .

Exemplos de funções IFNULL do MySQL

Veja os seguintes IFNULLexemplos de funções:

SELECT IFNULL(1,0); -- returns 1
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

SELECT IFNULL('',1); -- returns ''
Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

SELECT IFNULL(NULL,'IFNULL function'); -- returns IFNULL functionLinguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Como funciona.

  • IFNULL(1,0)retorna 1 porque 1 não é NULL.
  • IFNULL(' ',1)retorna ' 'porque a ' 'string não é NULL.
  • IFNULL(NULL,'IFNULL function')retorna IFNULL functionstring porque o primeiro argumento é NULL.

Vejamos um exemplo prático de utilização da IFNULLfunção.

Primeiro, crie uma nova tabela nomeada contactsusando a seguinte instrução:

CREATE TABLE IF NOT EXISTS contacts (
    contactid INT AUTO_INCREMENT PRIMARY KEY,
    contactname VARCHAR(20) NOT NULL,
    bizphone VARCHAR(15),
    homephone VARCHAR(15)
);Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Cada contato possui um nome, telefone comercial e telefone residencial.

Segundo, insira os dados na contactstabela:

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');Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Alguns contatos possuem apenas telefone residencial ou comercial. Para obter todos os nomes e telefones dos contatos da contactstabela, você usa a seguinte consulta:

SELECT 
    contactName, bizphone, homephone
FROM
    contacts;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Exemplo de função MySQL IFNULL

Seria bom se pudéssemos obter o telefone residencial do contato, caso o telefone comercial do contato não esteja disponível. É aqui que

É aqui que a IFNULLfunção entra em ação. A IFNULLfunção retorna o telefone residencial se o telefone comercial for NULL.

Terceiro, use a seguinte consulta para obter os nomes e telefones de todos os contatos:

SELECT 
    contactname, IFNULL(bizphone, homephone) phone
FROM
    contacts;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Experimente

Resultado IFNULL do MySQL

Observe que você deve evitar usar a IFNULLfunção na cláusula WHERE , pois ela degrada o desempenho da consulta. Se você quiser verificar se um valor é

Se quiser verificar se um valor é NULLou não, você pode usar IS NULLou IS NOT NULLna WHEREcláusula.

Neste tutorial, apresentamos a IFNULLfunção MySQL e mostramos como usá-la IFNULLnas consultas.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *