Mysql
 sql >> Base de données >  >> RDS >> Mysql

Procédure stockée avec paramètres WHERE facultatifs

L'un des moyens les plus simples d'y parvenir :

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. Ceci élimine complètement le sql dynamique et vous permet de rechercher sur un ou plusieurs champs. En éliminant SQL dynamique, vous supprimez un autre problème de sécurité concernant l'injection SQL.