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 e 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:
Escreva um comentário