Concatenação de strings no MySQL


149

Estou usando o MySQL e o MySQL Workbench 5.2 CE. Quando tento concatenar 2 colunas last_namee first_namenão funciona:

select first_name + last_name as "Name" from test.student

21
Esta pergunta não mostra absolutamente nenhum esforço de pesquisa. Da próxima vez, pesquise no Google suas perguntas antes de fazer aqui.
Mathias Lykkegaard Lorenzen

5
Eu não me importo com nenhum esforço de pesquisa, lol. stackoverflow se torna meu top hit no google para este tipo de questão, e este é o lugar para respostas crowdsourced :)
Hamish

Respostas:


271

O MySQL é diferente da maioria dos DBMSs que usam +ou ||para concatenação. Ele usa a CONCATfunção:

SELECT CONCAT(first_name, " ", last_name) AS Name FROM test.student

Como @eggyal apontou nos comentários, você pode ativar a concatenação de strings com o ||operador no MySQL, configurando o PIPES_AS_CONCATmodo SQL.


7
Melhor resposta, explica que o MySQL não usa operadores de concatenação.
precisa saber é o seguinte

28
Cuidado com isso não é inteiramente verdade: MySQL faz suporte ||para concatenação, quando o PIPES_AS_CONCATmodo de SQL está habilitado.
eggyal

1
Para aqueles que usam Doctrine, eu tive que usar aspas simples para o espaço CONCATe aspas duplas em toda a consulta.
craned

3
Para definir PIPES_AS_CONCAT: SET @@SQL_MODE = CONCAT(@@SQL_MODE, ',PIPES_AS_CONCAT');. Para retirar: SET @@SQL_MODE = REPLACE(@@SQL_MODE, 'PIPES_AS_CONCAT', '');. Mais exemplos em mariadb.com/kb/en/library/sql-mode/#examples
mivk

27

Experimentar:

select concat(first_name,last_name) as "Name" from test.student

ou melhor:

select concat(first_name," ",last_name) as "Name" from test.student


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.