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

Como puedo hacer consulta con un campo multiple?

Estas en el tema de Como puedo hacer consulta con un campo multiple? en el foro de Mysql en Foros del Web. Hola a todos! Para que os hagais una idea, tengo objetos de varios tipos y usuarios. Los usuarios pueden tener intereses por varios uno objetos ...
  #1 (permalink)  
Antiguo 25/05/2009, 01:51
 
Fecha de Ingreso: febrero-2006
Mensajes: 297
Antigüedad: 18 años, 2 meses
Puntos: 1
Como puedo hacer consulta con un campo multiple?

Hola a todos!

Para que os hagais una idea, tengo objetos de varios tipos y usuarios. Los usuarios pueden tener intereses por varios uno objetos y otras cosillas... Para elejir los objetos tengo un select multiple donde se pueden escoger uno o varios objetos para cada usuario. Estos resultados los guardo en el mismo campo de la base de datos separados mediante comas.

He hecho una consulta para mostrar todos los objetos de un usuario, seleccionando el campo objetos y haciendo un split (en php) y convirtiendo en un array todos los objetos separados por comas. Solo hay que recorrer el array mostrando los objetos.

Cómo podría hacerlo al revés? Como podría sacar todos los usuarios que han escogido un objeto? No sé como hacerlo en la consulta!

Ejemplo:

campo objetos del usuario1: obj1,obj2,obj11

campo objetos del usuario2: obj3,obj11

campo objetos del usuario3: obj5

Si tengo el obj11, me tendrían que salir los usuarios 1 y 2.

Como podría ponerse en una consulta?? porque tendría que ser algo como: muestrame los usuarios que contengan en este campo el obj11. Como sería eso?
  #2 (permalink)  
Antiguo 25/05/2009, 01:55
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años
Puntos: 300
Respuesta: Como puedo hacer consulta con un campo multiple?

Habría otras opciones, pero prueba esta:
Código sql:
Ver original
  1. SELECT * FROM tutabla WHERE campo REGEXP '[[:<:]]obj11[[:>:]]'
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 08:38.