select ステートメントの場合、次のように、where 条件の一部を外部の構成ファイルでパラメーターとして設定します (COL2
は文字列値で埋められます)。
SELECT COL1
,COL2
FROM TABLE1
WHERE COL2 = $external_parameter
ここで、外部パラメーターをリストにする必要がある、より複雑なケースがあります。の値がCOL2
リストにある場合は常に選択する必要がありますが、リストが提供されていない場合や何らかの「空の」タグがある場合は、すべての値を再度選択する必要があります。私はアイデアを思いつきましたが、そのようには機能しません:
SELECT COL1
,COL2
FROM TABLE1
WHERE $external_list = ('') or COL2 IN $external_list
このように、ステートメントはCOL2
、空のリストが提供された場合のすべての要素に対して true になり、塗りつぶされたリストが提供された場合、リストと一致するリスト内のすべての要素に対して true になります。
ただし、塗りつぶされたリストを提供すると、where ステートメントの前半の比較では機能しません。
('entry_a', 'entry_b') = ('')
それを機能させるクエリはありますか-1行のWHEREステートメントで最適ですか?