sql >> Databáze >  >> RDS >> Mysql

Uložená procedura s volitelnými parametry WHERE

Jeden z nejjednodušších způsobů, jak toho dosáhnout:

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

atd. To zcela eliminuje dynamické sql a umožňuje vám vyhledávat v jednom nebo více polích. Odstraněním dynamického sql odstraníte další bezpečnostní problém týkající se vkládání SQL.



  1. Upozornění na Python a SQLite

  2. Oracle sql:pořadí podle a odlišné klauzule

  3. Najděte v MySQL hodnoty, které neobsahují čísla

  4. Jak funguje sys.dm_exec_describe_first_result_set_for_object na serveru SQL Server