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
, string2
e 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 employees
tabela do banco de dados de exemplo :
O exemplo a seguir usa a CONCAT
funçã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 customers
mesa para a demonstração:
O exemplo a seguir usa a CONCAT
funçã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 NULL
valores normalmente, você pode usar a CONCAT_WS
função.
Como alternativa, você pode usar funções relacionadas a nulos, como IF
e 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 forNULL
ou uma vírgula (,) caso contrário.IFNULL(state, '')
: O terceiro argumento retorna um espaço se o estado forNULL
ou caso contrário.
A sequência de resultados será cidade apenas se o estado for NULL
ou cidade, estado se o estado não for NULL
.
A CONCAT_WS
função concatena múltiplas strings em uma string delimitada por um espaço especificado. Ele ignora os NULL
valores. 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 retornaNULL
se algum argumento de string forNULL
.