Função MySQL CONCAT()

Resumo : neste tutorial, você aprenderá como usar a CONCAT()função MySQL para concatenar várias strings em uma única string.

Introdução à função MySQL CONCAT

A CONCAT()função permite concatenar várias strings em uma única string.

Aqui está a sintaxe básica da CONCAT()função:

CONCAT(string1, string2, string3, ...)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A CONCAT()função aceita um número variável de strings de entrada: string1, string2, string3,…

Ele retorna uma única string que combina os argumentos de string string1, string2e string3

Se alguma string for NULL, a CONCAT()função retornará NULL.

Além disso, se você passar números para a CONCAT()função, ela converterá esses números em strings equivalentes antes da concatenação.

Exemplos de funções MySQL CONCAT

Vejamos alguns exemplos de uso da CONCAT()função.

1) Exemplo simples de função CONCAT

O exemplo a seguir usa a CONCAT()função para concatenar a string entre aspas em uma única string:

SELECT 
  CONCAT('John', ' ', 'Doe') full_name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-----------+
| full_name |
+-----------+
| John Doe  |
+-----------+
1 row in set (0.01 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste exemplo, usamos a CONCAT()função para combinar três strings entre aspas ‘John’, ‘ ‘ e ‘Doe’ no nome completo.

Se você concatenar apenas as strings citadas, poderá concatená-las colocando as strings uma ao lado da outra assim:

SELECT 'John'  ' ' 'Doe' full_name;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-----------+
| full_name |
+-----------+
| John Doe  |
+-----------+
1 row in set (0.00 sec)Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

2) Usando MySQL CONCAT com dados de tabela

Usaremos a employeestabela do banco de dados de exemplo :

tabela de funcionários - função MySQL CONCAT()

O exemplo a seguir usa a CONCATfunção para concatenar o nome, o espaço e o sobrenome no nome completo:

SELECT 
  CONCAT(firstName, ' ', lastName) full_name 
FROM 
  employees;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------------------+
| full_name         |
+-------------------+
| Diane Murphy      |
| Mary Patterson    |
| Jeff Firrelli     |
| William Patterson |
| Gerard Bondur     |
...Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

3) Usando MySQL CONCAT com valores NULL

Tomaremos a customersmesa para a demonstração:

O exemplo a seguir usa a CONCATfunção para concatenar os valores nas colunas cidade e estado em uma única string:

SELECT 
  city, 
  state, 
  CONCAT(city, ',', state) city_state 
FROM 
  customers;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------------------+---------------+---------------------------+
| city              | state         | city_state                |
+-------------------+---------------+---------------------------+
| Nantes            | NULL          | NULL                      |
| Las Vegas         | NV            | Las Vegas,NV              |
| Melbourne         | Victoria      | Melbourne,Victoria        |
| Nantes            | NULL          | NULL                      |
| Stavern           | NULL          | NULL                      |
| San Rafael        | CA            | San Rafael,CA             |
...Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A saída indica que se o estado for NULL, a sequência de resultados será NULL. Para lidar com os NULLvalores normalmente, você pode usar a CONCAT_WSfunção.

Como alternativa, você pode usar funções relacionadas a nulos, como IFe IFNULL. Por exemplo:

SELECT 
  city, 
  state, 
  CONCAT(
    city, 
    IF(state IS NULL, '', ','), 
    IFNULL(state, '')
  ) city_state 
FROM 
  customers;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------------------+---------------+---------------------------+
| city              | state         | city_state                |
+-------------------+---------------+---------------------------+
| Nantes            | NULL          | Nantes                    |
| Las Vegas         | NV            | Las Vegas,NV              |
| Melbourne         | Victoria      | Melbourne,Victoria        |
| Nantes            | NULL          | Nantes                    |
| Stavern           | NULL          | Stavern                   |
...Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste exemplo, o CONCAT()usa três argumentos:

  • city: O primeiro argumento.
  • IF(state IS NULL, '', ','): o segundo argumento retorna espaço se o estado for NULLou uma vírgula (,) caso contrário.
  • IFNULL(state, ''): O terceiro argumento retorna um espaço se o estado for NULLou caso contrário.

A sequência de resultados será cidade apenas se o estado for NULLou cidade, estado se o estado não for NULL.

A CONCAT_WSfunção concatena múltiplas strings em uma string delimitada por um espaço especificado. Ele ignora os NULLvalores. Por exemplo:

SELECT 
  city, 
  state, 
  CONCAT_WS(',', city, state) city_state 
FROM 
  customers;Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Saída:

+-------------------+---------------+---------------------------+
| city              | state         | city_state                |
+-------------------+---------------+---------------------------+
| Nantes            | NULL          | Nantes                    |
| Las Vegas         | NV            | Las Vegas,NV              |
| Melbourne         | Victoria      | Melbourne,Victoria        |
| Nantes            | NULL          | Nantes                    |
...Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Resumo

  • Use a CONCAT()função MySQL para concatenar várias strings em uma única string.
  • A CONCAT()função retorna NULLse algum argumento de string for NULL.

Deixe um comentário

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