Ich habe ein Formular, wo Benutzer verschiedene Parameter angeben können, um durch einige Daten (Status, Datum usw.) zu graben.Gespeicherte Prozedur mit optionalen "WHERE" -Parametern
Ich kann eine Abfrage erzeugen, ist:
SELECT * FROM table WHERE:
status_id = 3
date = <some date>
other_parameter = <value>
usw. Jeder WHERE
optional ist (ich alle Zeilen mit status = 3
auswählen können, oder alle Zeilen mit date = 10/10/1980
, oder alle Zeilen mit status = 3 AND date = 10/10/1980
usw.).
Angesichts einer großen Anzahl von Parametern, alle optional, was ist der beste Weg, um eine dynamische gespeicherte Prozedur zu machen?
Ich arbeite an verschiedenen DB, wie: MySQL, Oracle und SQLServer.
Dies ermöglicht nicht, dass alle Parameter optional sind. In diesem Beispiel muss @status_id übergeben werden. Selbst wenn es null ist, müssen Sie null übergeben, damit dies ausgeführt wird. – Eppz
Sie können einen Standardwert für Parameter in MS SQL Server angeben. Ich weiß nichts über MySQL –
Denken Sie daran, dass Sie mit dieser Methode möglicherweise nicht die bestmögliche Leistung erzielen, je nach RDBMS und Caching von Abfrageplänen. –