1. ホーム
  2. sql

[解決済み] SQL SELECT WHERE フィールドに単語が含まれる場合

2022-03-20 13:49:53

質問

このような結果を返すselectが必要です。

SELECT * FROM MyTable WHERE Column1 CONTAINS 'word1 word2 word3'

つまり、'word2 word3 word1' や 'word1 word3 word2' を含む文字列や、そのほかの3つの組み合わせも含めて、すべての結果が必要です。

すべての単語が結果に含まれている必要があります。

どのように解決するのですか?

かなり時間がかかるが、うまくいく方法は 任意の という単語があります。

SELECT * FROM mytable
WHERE column1 LIKE '%word1%'
   OR column1 LIKE '%word2%'
   OR column1 LIKE '%word3%'

必要な場合 すべて の文字が存在する場合は、これを使用します。

SELECT * FROM mytable
WHERE column1 LIKE '%word1%'
  AND column1 LIKE '%word2%'
  AND column1 LIKE '%word3%'

より高速なものを求めるのであれば、全文検索を検討する必要がありますが、これはデータベースの種類によって非常に特殊です。