Hoy, estaba hablando con un compañero mío sobre una consulta que estaba intentando hacer y no conseguía de ninguna de las maneras.
Lo que quería hacer era juntar dos columnas o campos de una tabla de mysql para poder buscar una cadena en dichos campos. Por ejemplo: Pongámonos en el caso de que tenemos una tabla de personas y dos campos: uno para el nombre y otro para los apellidos y queremos buscar sobre esas personas sobre esos dos campos pero unificados y mostrarselos como un único campo, como lo haríamos?
Pues utilizando la función concat_ws de mysql. Está función permite concatenar dos o más campos para mostrarse como un único campo.
Veámos un ejemplo:
SELECT concat_ws(' ', nombre, apellidos) as persona FROM personas;Esta consulta nos devolvería un único campo en el que se han juntado el nombre y los apellidos y utilizando el espacio como caracter de separación, en vez del espacio podemos utilizar cualquier carácter, por ejemplo:
SELECT concat_ws(' ,', nombre, apellidos) as persona FROM personas;El resultado sería:
Esteban, García García
Si también queremos utilizar este campo concatenado dentro de WHERE tendremos que utilizar el concat_ws porqué WHERE no sabe que existe un campo concatenado, por lo que quedaría así:
SELECT concat_ws(' ', nombre, apellidos) as persona FROM personas WHERE concat_ws(' ', nombre, apellidos) LIKE '%cadena%';Con el ejemplo anterior buscaría todas las personas que tuvieran la palabra <cadena> y mostraría el nombre completo de la persona.
Podéis encontrar más información en el siguiente enlace:
Entradas relacionadas:
- Como leer un XML con PHP Aquí tenemos un ejemplo de como leer un archivo XML que Contiene un grupo de personas cada una con su...
- Como conectarse a MySQL desde línea de comandos Con este tip podremos conectarnos a la consola de mysql y poder ejecutar culquier consulta de SQL o realizar tareas...
- Algunas funciones para cadenas en PHP Aquí os mostramos algunos ejemplos de como funcionan algunas funciones para el tratamiento de cadenas en php strlen Con esta...
- Detectar consultas lentas en MySQL Es posible que, a veces, las páginas web alojadas en nuestro servidor tarden mucho en cargarse. Si nuestras páginas utilizan...
- ¿Como puedo crear un buzón de correo desde mi Panel de Control Plesk? Acceda al panel de control a través de la siguiente url: https://su.dominio:8443/ (sustituya “su.domino” por el nombre de su dominio)...






interesante ..