Mysql
 sql >> Database >  >> RDS >> Mysql

Stored procedure con parametri WHERE opzionali

Uno dei modi più semplici per farlo:

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))

ecc. Questo elimina completamente sql dinamico e ti consente di cercare su uno o più campi. Eliminando sql dinamico si rimuove l'ennesimo problema di sicurezza relativo all'iniezione di sql.