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

Varchar con cadena de índices (Mysql)

Estas en el tema de Varchar con cadena de índices (Mysql) en el foro de Bases de Datos General en Foros del Web. Hola a todos. He estado buscando algún post con esto pero no lo he encontrado. Tengo en una tabla clientes un campo de id_promos para ...
  #1 (permalink)  
Antiguo 18/05/2005, 04:59
Avatar de peleo  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 37
Antigüedad: 21 años
Puntos: 0
Varchar con cadena de índices (Mysql)

Hola a todos.
He estado buscando algún post con esto pero no lo he encontrado.
Tengo en una tabla clientes un campo de id_promos para insertar ahí los ids de cada promo en la que ha participado el cliente separado por comas.
He desechado la opción de hacer una tabla intermedia de clientes_promos porque si en cada promo hay 20.000 clientes y tengo 20 promos tendré 400.000 registros (y los que lleguen).

Mi pregunta es cómo saber quién ha participado en la promo 16 si este id está dentro de una cadena que puede ser:

id_cliente - id_promos (varchar)
------------------------------
14568 ---- 2,19,6,14,3

Muchas gracias y saludos.

Última edición por peleo; 18/05/2005 a las 05:13 Razón: Cambio de título
  #2 (permalink)  
Antiguo 18/05/2005, 05:47
Avatar de peleo  
Fecha de Ingreso: noviembre-2003
Ubicación: Madrid
Mensajes: 37
Antigüedad: 21 años
Puntos: 0
Solución

Por si a alguien le puede interesar he encontrado una forma de hacerlo, rudimentaria, pero eficiente:
Código PHP:
WHERE (
promos_id LIKE '$id_promo,%' 
OR promos_id LIKE '%,$id_promo,%' 
OR promos_id LIKE '%,$id_promo' 
OR promos_id ='$id_promo'

Se calculan las posibilidades que puede haber con la coma detrás, delante y detrás, delante o sin coma.

Si alguien ve otra forma mejor podemos debatirlo.

Saludos.
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 14:20.