No MySQL, a função CONCAT tem a função de concatenar strings, ou seja, juntar cadeias de caracteres com o objetivo de formar novos nomes para as suas colunas e enriquecer a apresentação dos dados da sua tabela.
No artigo Como nomear as colunas das tabelas no MySQL, mostrei como melhorar a apresentação das colunas ao exibir as informações da sua tabela — recomendo dar uma olhada.
Neste texto, vou mostrar como usar a função CONCAT() para juntar valores alfanuméricos e formar novos nomes de campos em uma tabela.
Como usar a função CONCAT, do MySQL, para juntar cadeias de caracteres
Em conjunto com o alias (ou AS) é possível criar nomes mais interessantes e significativos para as colunas exibidas de uma tabela.
Veja a sintaxe da função CONCAT():
CONCAT(string1,string2,string3...);
Pode ficar mais fácil de entender, dentro de um exemplo prático.
Veja como concatenar as strings “just”, “in” e “case”:
CONCAT("just","in","case");
O resultado da operação acima é justincase
. Foi fácil?
Tome, como exemplo, a seguinte tabela:
SELECT * FROM ClientesCidades WHERE Id<10;
+----+-----------------+--------------+------------------+-------------+ | id | NomeCliente | IdadeCliente | CidadeCliente | CredCliente | +----+-----------------+--------------+------------------+-------------+ | 1 | Dara Chase | 40 | Buti | 21 | | 2 | Hanae Kane | 26 | Whitehorse | 28 | | 3 | Jaden Moon | 29 | Bertiolo | 17 | | 4 | Cathleen Harvey | 39 | Exeter | 12 | | 5 | Marcia Cole | 49 | Fortune | 13 | | 6 | Winter Fischer | 47 | Girifalco | 53 | | 7 | Irene Mann | 48 | Rocca San Felice | 78 | | 8 | Yetta Wood | 46 | Doues | 89 | | 9 | Alfreda Church | 38 | Tarnów | 96 | +----+-----------------+--------------+------------------+-------------+ 9 rows in set (0.00 sec)
Vamos usar o CONCAT() e o AS para exibir a idade de cada cliente entre colchetes e ao lado de cada nome:
SELECT Id AS Ordem, CONCAT(NomeCliente,'[',IdadeCliente,']') AS 'Cliente[Idade]' FROM ClientesCidades WHERE Id<10;
+-------+---------------------+ | Ordem | Cliente[Idade] | +-------+---------------------+ | 1 | Dara Chase[40] | | 2 | Hanae Kane[26] | | 3 | Jaden Moon[29] | | 4 | Cathleen Harvey[39] | | 5 | Marcia Cole[49] | | 6 | Winter Fischer[47] | | 7 | Irene Mann[48] | | 8 | Yetta Wood[46] | | 9 | Alfreda Church[38] | +-------+---------------------+ 9 rows in set (0.00 sec)
Vamos elaborar melhor este exemplo, incluindo informações sobre sua cidade e o valor de seu crédito:
SELECT CONCAT(NomeCliente,', tem ',IdadeCliente,' anos de idade. Mora em ',CidadeCliente,' e possui R$ ',CredCliente,' em créditos.') AS 'Maiores correntistas' FROM ClientesCidades WHERE CredCliente > 97;
+------------------------------------------------------------------------------------+ | Maiores correntistas | +------------------------------------------------------------------------------------+ | Cynthia Levy, tem 21 anos de idade. Mora em Pukekohe e possui R$ 99 em créditos. | | Tasha Walters, tem 19 anos de idade. Mora em Goutroux e possui R$ 98 em créditos. | | Zelenia Moss, tem 18 anos de idade. Mora em Elx e possui R$ 99 em créditos. | +------------------------------------------------------------------------------------+ 3 rows in set (0.00 sec)
Experimente outras combinações, para obter resultados diferentes e fixar melhor o aprendizado.
Se quiser aprofundar o aprendizado, use caixa de busca, no topo deste site, para encontrar outros exemplos MySQL.
Divirta-se!
One reply on “Como combinar nomes de colunas com a função CONCAT() do MySQL”
Tudo bem Elias.
Inicialmente queria dizer que gostei do seu post.
Por outra parte, você saberia como trocar :
‘, tem ‘,IdadeCliente,’ anos de idade. Mora em ‘
por :
‘Mora em ‘
no caso de IdadeCliente = 0 ou null?
{}