Função MySQL CONCAT_WS()

Resumo : neste tutorial, você aprenderá como usar a CONCAT_WSfunção MySQL para concatenar strings em uma única string, separada por um delimitador especificado.

Introdução à função MySQL CONCAT_WS

CONCAT_WSsignifica Concatenar com separador . _ _ A CONCAT_WSfunção concatena várias strings em uma única string separada por um separador especificado.

Aqui está a sintaxe da CONCAT_WSfunção:

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

Nesta sintaxe:

  • separator: Este é um separador que você usa para separar as strings.
  • string1, string2, string3, ..: as strings que você deseja concatenar.

O CONCAT_WSretorna uma única string que combina string1, string2, string3… separados pelo separador.

Se o separador for NULL, CONCAT_WSretornará NULL. A CONCAT_WSfunção não pula strings vazias. Mas se pular alguma NULLstring ( string1, string2, string3…).

Na prática, você usa a CONCAT_WSfunção para combinar valores de colunas diferentes com um separador personalizado.

Exemplos de funções MySQL CONCAT_WS

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

1) Exemplo simples de função CONCAT_WS

O exemplo a seguir usa a CONCAT_WS()função para concatenar duas strings com uma vírgula:

SELECT CONCAT_WS(',', '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 )

Neste exemplo, usamos a CONCAT_WSfunção para combinar as strings 'John'e 'Doe'com separador de vírgula. O resultado é a string 'John,Doe'.

2) Utilizando o CONCAT_WS com os dados da tabela

Usaremos o banco de dados employeesde exemplo para a demonstração:

demonstração de tabela de funcionários para função concat_ws

O exemplo a seguir usa o CONCAT_WSpara concatenar valores das colunas firstNamee lastNameda employeestabela usando um espaço como separador:

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

Saída:

+-------------------+
| full_name         |
+-------------------+
| Gerard Bondur     |
| Loui Bondur       |
| Larry Bott        |
| Anthony Bow       |
| Pamela Castillo   |
...Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

A consulta retorna um conjunto de resultados com uma única coluna full_namecontendo os nomes completos de todos os funcionários.

3) Usando a função CONCAT_WS com valores NULL

Considere a seguinte customerstabela no banco de dados de exemplo :

A consulta a seguir usa a CONCAT_WSfunção para concatenar a cidade e o estado dos clientes em uma única string com a vírgula como separador:

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

Saída:

+------------------------------------+---------------------------+
| customerName                       | address                   |
+------------------------------------+---------------------------+
| Alpha Cognac                       | Toulouse                  |
| American Souvenirs Inc             | New Haven,CT              |
| Amica Models & Co.                 | Torino                    |
| ANG Resellers                      | Madrid                    |
| Anna's Decorations, Ltd            | North Sydney,NSW          |
| Anton Designs, Ltd.                | Madrid                    |
| Asian Shopping Network, Co         | Singapore                 |
| Asian Treasures, Inc.              | Cork,Co. Cork             |Linguagem de código:  SQL (linguagem de consulta estruturada)  ( sql )

Neste exemplo, quando o estado é NULL, CONCAT_WSele é ignorado na sequência de resultados.

Resumo

  • Use a CONCAT_WSfunção para concatenar várias strings em uma única string separada por vírgula.
  • A CONCAT_WSfunção ignora NULLvalores.

Deixe um comentário

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