Cita:
Iniciado por gnzsoloyo
Si la cantidad de datos es variable, la consulta debe crearse dinámicamente, poniendo programáticamente aquellas condiciones que efectivamente están ingresando en el formulario.
No puedes evitar que el OR opere si usas una consulta de sintaxis estática con valores variables.
Recuerda en que el OR es una disyunción, y te devolverá los registros donde al menos una de las condiciones separadas por OR se cumpla... ignorando la evaluación resto de las que no se cumplen. Es parte del funcionamiento de la lógica proposicional.
Si quieres resolverlo en SQL, tendrás que implementarlo todo por medio de un SP, pero no te lo aconsejo: Terminarías usando sentencias preparadas que logren la misma lógica que crearla por programación, o bien generando 16 consultas, para las 16 combinaciones de condiciones posibles.
Era lo que me temía, pero cómo no soy un experto en MySQL por eso decidí por preguntar. Había pensado en usar condicional IF, de manera que si el valor no es nulo agregue a la consulta (del lado del servidor) un parámetro más.