Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/12/2011, 12:06
leonardo_josue
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 4 meses
Puntos: 447
Respuesta: Obtener registros que contengan un determinado número en su campo

Hola Josico:

Creo que no te tomaste un poco de tiempo para pensar en lo que te comentó el compañero gnzsoloyo... manejar campos multivaluados como lo estás haciendo es una tontería...

Tal y como lo comentas, es posible hacer la búsqueda que quieres con el like, pero aun así deberías tener cuidado en como estás utilizandolo... por ejemplo si pusiste tu consulta como LIKE '%5%', este regresará también los casos siguientes patrones (55, 15, 151, 555 1115) es decir, cualquier cadena que contenga un 5...

Si optaste por ejemplo por poner espacios así LIKE '% 5 %', esta consulta sólo si el 5 se encuentra en medio de tu campo, pero no funcionará si está al inicio o al final. Checa este script:

Código MySQL:
Ver original
  1. mysql> select * from tabla;
  2. +-------+
  3. | campo |
  4. +-------+
  5. | 5     |
  6. | 1 3 5 |
  7. | 5 7 9 |
  8. | 3 5 7 |
  9. +-------+
  10. 4 rows in set (0.00 sec)
  11.  
  12. mysql> select * from tabla where campo like '%5%';
  13. +-------+
  14. | campo |
  15. +-------+
  16. | 5     |
  17. | 1 3 5 |
  18. | 5 7 9 |
  19. | 3 5 7 |
  20. +-------+
  21. 4 rows in set (0.00 sec)
  22.  
  23. mysql> select * from tabla where campo like '% 5 %';
  24. +-------+
  25. | campo |
  26. +-------+
  27. | 3 5 7 |
  28. +-------+
  29. 1 row in set (0.00 sec)

¿Se entiende cual es el problema?... deberías pensar seriamente en cambiar tu modelo de BD, te ahorrará muchos dolores de cabeza en un futuro.

Saludos
Leo.