MySQL – Concatenação de Strings com as funções CONCAT, IFNULL e COALESCE

Concatenação de Strings com as funções CONCAT, IFNULL e COALESCE em MySQL

É possível concatenar strings no MySQL usando-se as funções CONCAT, IFNULL e COALESCE. Iremos estudá-las nesta lição.

Para estudarmos estas funções, vamos criar uma tabela em um banco de dados de teste. Use o código a seguir para isso:

Criar tabela:

CREATE TABLE teste_nulos (
id smallint PRIMARY KEY auto_increment,
item varchar(20),
quantidade smallint NULL);
 

Inserir dados para testes:

INSERT INTO teste_nulos (id, item, quantidade)
VALUES (1, 'Pendrive', 5);
INSERT INTO teste_nulos (id, item, quantidade)
VALUES (2, 'Monitor', 7);
INSERT INTO teste_nulos (id, item, quantidade)
VALUES (3, 'Teclado', NULL);
 
Efetuar consulta para verificar funcionalidade da tabela:
 
SELECT * FROM teste_nulos;

Função CONCAT

Sintaxe:

CONCAT(string ou nome_coluna, <string | nome_coluna)

Exemplos:

SELECT CONCAT(‘Fábio ‘, ‘dos Reis’) AS ‘Meu Nome’;
SELECT CONCAT(Nome_autor, ‘ ‘, Sobrenome_autor) AS ‘Nome Completo’
FROM tbl_autores;
SELECT CONCAT('Eu gosto do livro ', Nome_Livro)
FROM tbl_Livro WHERE ID_autor = 2;

Concatenação com NULL

Se uma string for concatenada com o valor NULL, o resultado retornado será apenas NULL, independentemente das outras partes concatenadas. Veja um código de exemplo:

SELECT CONCAT('A quantidade adquirida é ', ' ', quantidade)
FROM tbl_teste_nulos
WHERE  item = 'Teclado'; --este é um item cuja quantidade é nula

Para evitar esse problema de concatenação com valores nulos, há funções disponíveis que substituem NULL por outro valor. São elas as funções IFNULL COALESCE.

Função IFNULL

Efetua a concatenação de strings e, caso a string concatenada seja nula, a substitui por um valor padrão (substituição).

Sintaxe:

IFNULL (valor, substituição)

Exemplo:

SELECT CONCAT('A quantidade adquirida é ', ' ', IFNULL(quantidade, 0))
FROM teste_nulos
WHERE  item = 'Teclado';

Função COALESCE

Essa função retornará o primeiro valor não-nulo encontrado em seus argumentos.

Sintaxe:

COALESCE (valor1, valor2, …, valorN)

Exemplo:

SELECT CONCAT('A quantidade adquirida é ', ' ', COALESCE(NULL, quantidade, NULL, 0))
FROM teste_nulos
WHERE  item = 'Teclado';

Assista a um vídeo com a explicação completa sobre esse assunto a seguir:

Sobre Fábio dos Reis (1329 Artigos)
Fábio dos Reis trabalha com tecnologias variadas há mais de 25 anos, tendo atuado nos campos de Eletrônica, Telecomunicações, Programação de Computadores e Redes de Dados. É um entusiasta de Unix, Linux e Open Source em geral, adora Eletrônica e Música, e estuda idiomas, além de ministrar cursos e palestras sobre diversas tecnologias em São Paulo e outras cidades do Brasil.
Contato: Website

Escreva um comentário

Seu e-mail não será divulgado


*