私は通常、変数ごとに多くの条件を持つ複数の変数について、非常に大きなテーブルをクエリする必要があります。多くの場合、変数は複数の範囲について照会する必要があります。たとえば、VAR_1が200〜300、350〜400、450〜500の間にあるVAR_1のすべてのレコードが必要になる可能性があります。
通常、これは次のように記述しますIN()
が、複数のORの代わりに使用する方がはるかに効率的であると言われています。
SELECT * FROM table
WHERE VAR_1 BETWEEN '200' AND '300' OR
VAR_1 BETWEEN '350' AND '400' OR
VAR_1 BETWEEN '450' AND '500'
OR
この情報を凝縮し、ネストLIKE
またはBETWEEN
句内の句によってsを取り除く方法はありますIN()
か?次のようなもの:
WHERE VAR_1 IN (BETWEEN '200' AND '300', BETWEEN '350' AND '400', BETWEEN '450' AND '500')
また
WHERE VAR_1 IN ('[200-300]','[350-400]','[450-500]')
私はこれらのようなことを試みましたが、構文は明らかに間違っています。あなたが私に指摘できるアイデアや方向性は素晴らしいでしょうが、それでもSQLには非常に新しいものです。