Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

buscar en campos concatenados

Estas en el tema de buscar en campos concatenados en el foro de Mysql en Foros del Web. hola buenas, estoy empezando en mysql y la verdad que me gusta bastante, me ha surgido un problemilla. necesito hacer una busqueda en varios campos ...
  #1 (permalink)  
Antiguo 09/05/2012, 12:07
 
Fecha de Ingreso: febrero-2010
Mensajes: 157
Antigüedad: 14 años, 9 meses
Puntos: 5
buscar en campos concatenados

hola buenas, estoy empezando en mysql y la verdad que me gusta bastante, me ha surgido un problemilla.

necesito hacer una busqueda en varios campos concatenados ejemplo

Select campo1, concat(campo2,' ',campo3,' ',campo4) as campo_mixto from tabla where campo_mixto like '%texto a buscar%'

este sql me genera un error en la clausula where ya que no localiza el campo_mixto.

Si ejecuto asi
Select campo1, concat(campo2,' ',campo3,' ',campo4) as campo_mixto from tabla

lista correctamente el campo1 y el campo_mixto.

Gracias, es un buscador....
  #2 (permalink)  
Antiguo 09/05/2012, 12:21
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 10 meses
Puntos: 447
Respuesta: buscar en campos concatenados

Hola yeyowave:

Ningún motor de base de datos te permite utilizar alias en la cláusula WHERE de la consulta, esto es imposible. Para hacer lo que quieres puedes hacerlo de dos formas:

Código MySQL:
Ver original
  1. Select campo1, concat(campo2,' ',campo3,' ',campo4) as campo_mixto
  2. from tabla
  3. where concat(campo2,' ',campo3,' ',campo4) like '%texto a buscar%'

o

Código MySQL:
Ver original
  1. (
  2. select campo1, concat(campo2,' ',campo3,' ',campo4) as campo_mixto
  3. from tabla
  4. )
  5. where campo_mixto like '%texto a buscar%'

Ahora bien, la cláusula LIKE puede no ser del todo conveniente para un buscador. Te recomiendo que le des un vistazo a esta liga

http://dev.mysql.com/doc/refman/5.0/...xt-search.html

Saludos
Leo.

Etiquetas: campos, select, sql, tabla
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:57.