Concatenación de cadenas en MySQL


149

Estoy usando MySQL y MySQL Workbench 5.2 CE. Cuando trato de concatenar 2 columnas last_namey first_nameno funciona:

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

21
Esta pregunta no muestra absolutamente ningún esfuerzo de investigación. La próxima vez, busca tus preguntas en Google antes de hacerlas aquí.
— Mathias Lykkegaard Lorenzen

55
No me importa ningún esfuerzo de investigación, jajaja. stackoverflow se convierte en mi principal éxito en google para este tipo de preguntas, y este es el lugar para respuestas de crowdsourced :)
— hamish

Respuestas:


271

MySQL es diferente del uso de la mayoría de los DBMS +o ||para la concatenación. Utiliza la CONCATfunción:

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

Como @eggyal señaló en los comentarios, puede habilitar la concatenación de cadenas con el ||operador en MySQL configurando el PIPES_AS_CONCATmodo SQL.


77
Mejor respuesta, explica que MySQL no usa operadores de concatenación.
— DonBecker

28
Cuidado con esto no es del todo cierto: MySQL hace de soporte ||para la concatenación de cadenas, cuando la PIPES_AS_CONCATestá habilitado el modo SQL.
— eggyal

1
Para aquellos que usan Doctrine, tuve que usar comillas simples para el espacio CONCATy comillas dobles alrededor de toda la consulta.
— Craned

3
Para establecer PIPES_AS_CONCAT: SET @@SQL_MODE = CONCAT(@@SQL_MODE, ',PIPES_AS_CONCAT');. Para desarmar: SET @@SQL_MODE = REPLACE(@@SQL_MODE, 'PIPES_AS_CONCAT', '');. Más ejemplos en mariadb.com/kb/en/library/sql-mode/#examples
— mivk

27

Tratar:

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

o mejor:

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


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.