テキスト フィールド (概要) を含むテーブルがあります。私は最近、長い文字列リストの出現についてそのフィールドを照会するようにという要求を受け取りました。たとえば、「概要」フィールドで次の文字列の出現を検索したいと思います。
- りんご
- バナナ
- にんじん
- 犬
- 象
- ... x 50 以上のアイテム
- シマウマ
これらの値のいずれかを含む行の ID を返す簡単なクエリを記述できますか?
テキスト フィールド (概要) を含むテーブルがあります。私は最近、長い文字列リストの出現についてそのフィールドを照会するようにという要求を受け取りました。たとえば、「概要」フィールドで次の文字列の出現を検索したいと思います。
これらの値のいずれかを含む行の ID を返す簡単なクエリを記述できますか?
私の頭に浮かぶ最も簡単な方法は、次のようなものです。
SELECT "ID" FROM table WHERE "summary" IN ('apple', 'banana', 'carrot', 'dog', ....)
これを試してみてください。
コメント後に編集:同様の演算子を使用:
select "ID" from table where upper("summary") similar to upper('%((apple)|(banana)|...|(zebra))%')
正規表現を使用:
select * from mytable
where summary similar to '%(apple|banana|carrot|dog)%'
この作業のSQLFiddleを参照してください