Ver Mensaje Individual
  #7 (permalink)  
Antiguo 19/01/2015, 16:02
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: busqueda de un valor en varios campos

Hola de Nuevo axelb:

La única forma de "reducir" la consulta, sería utilizar un IN en lugar de varios OR, sin embargo, no por el hecho de hacer que la consulta sea más pequeña significa que sea mejor... para "simplificar" la consulta podrías hacer lo siguiente:

Código MySQL:
Ver original
  1. SELECT id, nombre, prod1, prod2, prod3
  2. FROM cliente
  3. WHERE 3 IN (prod1, prod2, prod3);

Esta es una versión reducida del OR, sin embargo, tengo que reconocer que nunca lo he utilizado de esta forma...

Es posible que si tienes pocos registros en tu tabla no veas diferencias significativas en las consultas, pero de cualquier manera sería conveniente que hagas un monitoreo de las mismas para ver cuál es la mejor... puedes hacer uso de funciones como EXPLAIN para ver las sugerencias que te hace el mismo DBMS acerca de la optimización de las consultas... prueba todas, desde la original, la que propone mauritosuarez o esta última con el IN y dinos cuál tiene mejor rendimiento.

Saludos
Leo.