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

¿Se puede mejorar y/o simplificar esta consulta?

Estas en el tema de ¿Se puede mejorar y/o simplificar esta consulta? en el foro de Mysql en Foros del Web. Chicos, buenas tardes me colaboran con una duda por fa Esta consulta funciona bien. ¿Esta consulta se puede hacer mas eficiente y/o mas simplificada? @import ...
  #1 (permalink)  
Antiguo 01/08/2013, 19:32
 
Fecha de Ingreso: noviembre-2010
Mensajes: 204
Antigüedad: 13 años, 5 meses
Puntos: 1
¿Se puede mejorar y/o simplificar esta consulta?

Chicos, buenas tardes me colaboran con una duda por fa

Esta consulta funciona bien.

¿Esta consulta se puede hacer mas eficiente y/o mas simplificada?

Código MySQL:
Ver original
  1. -- si color_prenda = todos AND size = todas
  2. SELECT * FROM articulos WHERE color = "todos" AND size = "todas"
  3.  
  4. -- si color_prenda = todos AND size <> todas
  5. SELECT * FROM articulos WHERE color = "todos" AND size = size_prenda
  6.  
  7. -- si color_prenda <> todos AND size = todas
  8. SELECT * FROM articulos WHERE color = color_prenda AND size = "todas"
  9.  
  10. -- si color_prenda <> todos AND size <> todas
  11. SELECT * FROM articulos WHERE color = color_prenda AND size = size_prenda
Cita:
Editado: Código de programación no permitido en foros de BBDD
Gracias

Última edición por gnzsoloyo; 01/08/2013 a las 20:02
  #2 (permalink)  
Antiguo 01/08/2013, 22:17
Avatar de guardarmicorreo  
Fecha de Ingreso: noviembre-2012
Ubicación: Córdoba
Mensajes: 1.153
Antigüedad: 11 años, 5 meses
Puntos: 84
Respuesta: ¿Se puede mejorar y/o simplificar esta consulta?

Cita:
Iniciado por isabelramirezmontoya Ver Mensaje
Chicos, buenas tardes me colaboran con una duda por fa

Esta consulta funciona bien.

¿Esta consulta se puede hacer mas eficiente y/o mas simplificada?

Código MySQL:
Ver original
  1. -- si color_prenda = todos AND size = todas
  2. SELECT * FROM articulos WHERE color = "todos" AND size = "todas"
  3.  
  4. -- si color_prenda = todos AND size <> todas
  5. SELECT * FROM articulos WHERE color = "todos" AND size = size_prenda
  6.  
  7. -- si color_prenda <> todos AND size = todas
  8. SELECT * FROM articulos WHERE color = color_prenda AND size = "todas"
  9.  
  10. -- si color_prenda <> todos AND size <> todas
  11. SELECT * FROM articulos WHERE color = color_prenda AND size = size_prenda

Gracias
sí, podrías hacer la consulta dinámica con un cgi, por ejemplo php
  #3 (permalink)  
Antiguo 02/08/2013, 04:51
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: ¿Se puede mejorar y/o simplificar esta consulta?

Si tienes indices sobre color o size podrias forzar su uso....

http://dev.mysql.com/doc/refman/5.1/en/index-hints.html
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #4 (permalink)  
Antiguo 02/08/2013, 05:17
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: ¿Se puede mejorar y/o simplificar esta consulta?

Tus consultas en realidad son una única consulta, y en general esa parametrización se hace dinámicamente en el lenguaje que programas al momento de crearla, agregando o descartando elementos en función a lo que selecciona el usuario en la GUI.
Pero eso es tema off-topic en los foros de BBDD. Te recomiendo consultar cómo hacerlo en el foro del lenguaje que usas.

Respecto a tu post original, lo siento si se perdió un poco la idea,pero no se permite código de programación en los foros de BBDD, y en las normas de este foro se explica por qué.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Etiquetas: mejorar, select, simplificar
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 13:20.