Imaginemos que queremos un string con la dirección completa de un lugar y que tenemos esa información guardada en una tabla, pero tenemos guardados por separado la dirección, el código postal, la ciudad y la provincia. Puedes hacer una SELECT, pedirle todos los datos y concatenarlos al gusto mediante PHP. Pero también podemos recibir los datos ya formateados de la propia consulta para ello MySQL nos ha creado una función llamada CONCAT, dicha función une dos datos dentro de una consulta, para que cuando los tengas que mostrar ya estén concatenados. Es muy útil por ejemplo cuando queremos mostrar direcciones o nombres y apellidos, pongamos un ejemplo:
Select CONCAT(Nombre, ' ', Apellidos) As Nombre From usuarios;
Esta función nos extraerá el campo Nombre y Apellidos separados por un espacio, unidos en un solo campo llamado "Nombre", de esta manera tan solo debemos mostrar un dato de información.
Esta función también se puede utilizar para concatenar valores numéricos, si por ejemplo debemos mostrar un valor de porcentaje en nuestra aplicación con ejecutar esta consulta, este se mostrará formateado:
Select CONCAT(visitas, ' %') As Total From estadisticas;
Dicho valor nos devolverá el dato de la siguiente manera (10.00 %), ¿nos ahorra trabajo verdad?.
CONCAT(str1,str2,...)
Devuelve la cadena resultante de concatenar los argumentos. Devuelve NULL si alguno de los argumentos es NULL. Puede haber más de 2 argumentos. Un argumento numérico se convierte a su cadena equivalente:
mysql> SELECT CONCAT('My', 'S', 'QL');
+-------------------------+
| CONCAT('My', 'S', 'QL') |
+-------------------------+
| MySQL |
+-------------------------+
1 row in set (0.00 sec)
mysql> SELECT CONCAT('My', NULL, 'QL');
+--------------------------+
| CONCAT('My', NULL, 'QL') |
+--------------------------+
| NULL |
+--------------------------+
1 row in set (0.00 sec)
mysql> SELECT CONCAT(14.3);
+--------------+
| CONCAT(14.3) |
+--------------+
| 14.3 |
+--------------+
1 row in set (0.00 sec)