sql >> Base de Datos >  >> RDS >> Mysql

Procedimiento almacenado con parámetros WHERE opcionales

Una de las maneras más fáciles de lograr esto:

SELECT * FROM table 
WHERE ((@status_id is null) or (status_id = @status_id))
and ((@date is null) or ([date] = @date))
and ((@other_parameter is null) or (other_parameter = @other_parameter))

etc. Esto elimina por completo el sql dinámico y le permite buscar en uno o más campos. Al eliminar sql dinámico, elimina otro problema de seguridad relacionado con la inyección de sql.