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

Lagret procedure med valgfri WHERE-parametre

En af de nemmeste måder at opnå dette på:

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

osv. Dette eliminerer fuldstændig dynamisk sql og giver dig mulighed for at søge på et eller flere felter. Ved at eliminere dynamisk sql fjerner du endnu et sikkerhedsproblem vedrørende sql-injektion.



  1. Psycopg2 Indsæt i tabel med pladsholdere

  2. PDO mysql:Sådan ved du, om indsættelsen lykkedes

  3. hvordan man erklærer %ROWTYPE af en variabel, der er en svagt skrevet SYS_REFCURSOR?

  4. Sådan rettes fejlmeddelelse 7325 i SQL Server:"Objekter, der afslører kolonner med CLR-typer, er ikke tilladt i distribuerede forespørgsler"