Cita:
Iniciado por dardo123 Porque tendría que hacer miles de comprobaciones de todas las combinatorias mediante if de todos los campos, ya que el usuario puede llenar los input al azar (dependiendo de lo que quiere consultar)
Como ya habrás notado a través de las dos ultimas soluciones propuestas (que en realidad son lo mismo), estás completamente errado al suponer que debes hacer todas las combinatorias de condiciones. Sólo necesitas agregar dinamicamente una condición adicional por cada parámetro que llega.
Infortunadamente no existe otro camino: Si tienes N parametros
posibles, y quieres consultar sólo por los que se ingresen, pues tendrás que verificar uno por uno cuales entraron y sólo poner lo necesario para ESE.
Todos los sofwares que conoces usan la misma lógica.
La unica otra alternativa práctica se da si y sólo si se trata de texto, o se va a comparar como texto. En ese caso puedes crear un indice FULLTEXT sobre todas las columnas que se pueden consultar, y usar MATCH() AGAINST() en la query.
Pero eso tiene ciertas condiciones, como por ejemplo, no sirve para palabras de menos de cinco caracteres, y no permite buscar patrones, solo palabras.