同じ値を使用する値の検索
例
SELECT Name, UnitPrice, Quantity, Color
FROM Product
WHERE Name Like '2' OR UnitPrice Like '2' OR Quantity LIKE '2' OR Color LIKE '2'
Variable LIKE 'value' を繰り返す必要がないように文を短くする方法はありますか?
LIKE
ワイルドカードなしは=
SELECT Name, UnitPrice, Quantity, Color
FROM Product
WHERE '2' IN (Name, UnitPrice, Quantity, Color)
これは、一連の OR 条件に展開され
ます。文字列'2'
は、OR 展開後に必要に応じてキャストされることに注意してください。
ワイルド カードと LIKEが必要な場合は、一連の OR ステートメントを使用する必要があります。
最後に、これはパフォーマンスに関してはスケーリングしません。適切なインデックス作成 (たとえば、列ごとに 1 つ、その他の 2 つを INCLUDE 列として) を使用すると、おそらく、それらの間に UNION を使用して個別のクエリとして記述した方がよいでしょう。
わかりやすくするために編集
OPはワイルドカードを使用したいと考えています。したがって、私のIN
提案は機能しません。だからあなたはこれをしなければなりません
WHERE
Name Like '%2%' OR
UnitPrice Like '%2%' OR
Quantity LIKE '%2%' OR
Color LIKE '%2%'
ワイルドカードが先頭にあるため、インデックスを追加しても意味がありません。したがって、インデックスとインクルードに関する上記のテキストは無関係です