Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como concatenar strings no MySQL com CONCAT()


MySQL tem o CONCAT() função, que permite concatenar duas ou mais strings. A função na verdade permite um ou mais argumentos, mas seu principal uso é concatenar duas ou mais strings.

No MySQL (e em qualquer ambiente de programação de computador), a concatenação de strings é a operação de unir strings de caracteres de ponta a ponta.

Aqui está um exemplo:
SELECT CONCAT('Homer', ' ', 'Simpson') AS 'Full Name';

Resultado:
+---------------+
| Full Name     |
+---------------+
| Homer Simpson |
+---------------+

Observe que eu realmente concatenei 3 strings aqui. Eu concatenei o primeiro nome, o sobrenome, mais um espaço.



Se eu não adicionasse o espaço, ficaria assim:
SELECT CONCAT('Homer', 'Simpson') AS 'Full Name';

Resultado:
+--------------+
| Full Name    |
+--------------+
| HomerSimpson |
+--------------+

Que pode ou não ser o resultado que você procura.

Então, se aplicarmos isso a um banco de dados, a consulta pode ser algo assim:
SELECT CONCAT(FirstName, ' ', LastName) AS 'Full Name'
FROM Individuals
WHERE IndividualId = '1';

Resultado:
+---------------+
| Full Name     |
+---------------+
| Homer Simpson |
+---------------+

Se você estiver concatenando mais de duas strings e precisar de um espaço (ou outro separador), considere usar o CONCAT_WS() função. Isso permite que você especifique um separador a ser usado entre cada string. Você só precisa especificar o separador uma vez, e ele é usado em todas as strings concatenadas, evitando que você precise redigitá-lo entre cada string.

Argumentos NULL


O CONCAT() função retorna NULL se algum argumento for NULL .

Exemplo:
SELECT CONCAT('Homer', NULL, 'Simpson') AS 'Full Name';

Resultado:
+-----------+
| Full Name |
+-----------+
| NULL      |
+-----------+

Strings binárias vs strings não binárias


A documentação do MySQL afirma:

Se todos os argumentos forem strings não binárias, o resultado será uma string não binária. Se os argumentos incluírem qualquer string binária, o resultado será uma string binária. Um argumento numérico é convertido em sua forma de string não binária equivalente.