私は、ユーザーがさまざまなパラメータを指定してデータ(ステータス、日付など)を調べることができるフォームを用意しています。オプションの「WHERE」パラメータを使用したストアドプロシージャ
Iであるクエリを生成することができる:
SELECT * FROM table WHERE:
status_id = 3
date = <some date>
other_parameter = <value>
等各WHERE
は、(I等status = 3 AND date = 10/10/1980
とdate = 10/10/1980
、またはすべての行とstatus = 3
、またはすべての行とすべての行を選択できるオプションであります)。
すべてのオプションを指定すると、動的ストアドプロシージャを構成する最適な方法は何ですか?
私は、 MySQL、Oracle、SQLServerなど、さまざまなDBに取り組んでいます。これを実現する最も簡単な方法の
これでは、すべてのパラメータをオプションにすることはできません。この例では、@status_idを渡す必要があります。ヌルであっても、これを実行するにはnullを渡す必要があります。 – Eppz
MS SQL Serverのパラメータのデフォルト値を指定できます。私はMySQLについてはわかりません –
あなたのRDBMSとそれがどのようにクエリプランをキャッシュするかによって、この方法で最高のパフォーマンスを得ることができないかもしれないことに留意してください。 –