Concatenar cadenas de caracteres en MySQL

La función más común para juntar un conjunto de cadenas de caracteres en MySQL es CONCAT(cadena1, cadena2, …)

Algunas consideraciones:

  • Si los argumentos que recibe son “no binarios”, la cadena resultante es no binaria
  • Si al menos uno de los argumentos es una cadena binaria, la salida es binaria.
  • Un número se convierte a su forma de texto no binaria
  • Si alguno de los argumentos es NULL, retorna NULL
mysql> SELECT CONCAT('Lalo', ' ' , 'Landa');
'Lalo Landa'
mysql> SELECT CONCAT('Lalo', NULL , 'Landa');
NULL

El uso más común es para unir nombre de campos de las tablas incluidas en la consulta:

mysql> SELECT CONCAT(apellido, ', ' , nombre) FROM usuarios;
'Gómez, Mario'

Cuando es necesario indicar un separador para unir más de 2 cadenas, lo recomendable es usar la función CONCAT_WS(separador, cadena1, cadena2, …)

Es una forma especial de CONCAT(). El WS al final proviene de  “With Separator”, lo que en conjunto sería “Conctatenar con Separador”. El primer argumento que recibe es el separador que se agregará entre cada una de las cadenas indicadas a continuación.

Algunas consideraciones:

  • Si el separador es NULL, el resultado es NULL
  • Si alguno de las cadenas es NULL, la misma se omite
mysql> SELECT CONCAT_WS(' ', 'Lalo' , 'Landa');
'Lalo Landa'
mysql> SELECT CONCAT_WS(' ', 'Lalo', NULL , 'Landa');
'Lalo Landa'

Concatenando múltiples campos:

mysql> SELECT CONCAT(' ', titulo, nombre, apellido) FROM usuarios;
'Ing. Sergio Morales'
Anuncios