Ver Mensaje Individual
  #4 (permalink)  
Antiguo 06/07/2015, 06:20
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: ¿Como se podría hacer la consulta?

Si tienes todos los valores en un campo, la única solución es usar FIND_IN_SET en el WHERE (no, antes que preguntes, LIKE no te va a funcionar bien), pero para que devuelva resultados correctos deberás incluir un FIND_IN_SET:
Código MySQL:
Ver original
  1. SELECT a, b, c, d, e
  2. FROM tabla
  3. WHERE FIND_IN_SET(campo, '1')>0
  4.   AND FIND_IN_SET(campo, '23')>0
  5.   AND FIND_IN_SET(campo, '8')>0
Cita:
Al margen de esto y para futuras ocasiones, me gustaría saber, si tengo por ejemplo 50 opciones de opciones, tendría que hacer 50 tablas relacionales?, siempre?
Eso no se puede responder sin conocer detalles del sistema. Tu ves 50 opciones, y yo puedo llegar a ver una tabla con 50 registros, o bien cuatro tablas con X registros cada una...

En resumen: describe el sistema completo, y qué representan cada una de esas 50 opciones, y veremos.
Un dato no es necesariamente una tabla. Un mismo objeto puede no ser una única tabla, y 150 formularios pueden en realidad ser 8 tablas. No depende de lo que veas en la pantalla o lo diferentes que parezcan los datos, sino en lo que esos datos representan y lo que hace el sistema.
Las bases de datos y la arquitectura de datos no son un terreno fácil para los programadores que se inician. Requiere cierto nivel de conocimiento y experiencia dominarlo.

Por otro lado, no te asustes con 50 miserables tablas. Trabajo con una base que tiene 683 tablas, y accedo a otros que tienen más de 1.000, y ni se notan.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 06/07/2015 a las 06:30