Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/04/2010, 08:48
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 16 años, 1 mes
Puntos: 360
Respuesta: SELECT con Array

suponiendo que tienes esto

Código MySQL:
Ver original
  1. mysql> select *from fs;
  2. +--------+--------+---------+
  3. | campo1 | campo2 | campo3  |
  4. +--------+--------+---------+
  5. |    100 |    200 | 1,2,3,4 |
  6. |    150 |    250 | 1,5,6,7 |
  7. +--------+--------+---------+
  8. 2 rows in set (0.00 sec)

Y buscas el 3.

Código MySQL:
Ver original
  1. mysql> select campo1,campo2 from fs where find_in_set('3',campo3) > 0;
  2. +--------+--------+
  3. | campo1 | campo2 |
  4. +--------+--------+
  5. |    100 |    200 |
  6. +--------+--------+
  7. 1 row in set (0.00 sec)

El 3 solo pertenece al primer registro y no al segundo.

Si buscamos por 1, debería mostrar ambos registros

Código MySQL:
Ver original
  1. mysql> select campo1,campo2 from fs where find_in_set('1',campo3) > 0;
  2. +--------+--------+
  3. | campo1 | campo2 |
  4. +--------+--------+
  5. |    100 |    200 |
  6. |    150 |    250 |
  7. +--------+--------+
  8. 2 rows in set (0.00 sec)

Si pasamos como parametro el 7, mostraría solo el segundo registro.

Código MySQL:
Ver original
  1. mysql> select campo1,campo2 from fs where find_in_set('7',campo3) > 0;
  2. +--------+--------+
  3. | campo1 | campo2 |
  4. +--------+--------+
  5. |    150 |    250 |
  6. +--------+--------+
  7. 1 row in set (0.00 sec)

Y si mostyrams el 12, (No existe en ninguno) no debería mostrar nada.
Código MySQL:
Ver original
  1. mysql> select campo1,campo2 from fs where find_in_set('12',campo3) > 0;
  2. Empty set (0.00 sec)
  3.  
  4. mysql>

Es así como lo necesitas?
__________________
Without data, You are another person with an opinion.
W. Edwads Deming