次の表を検討してください。
人々
- 名 nvarchar(50)
- 姓 nvarchar(50)
ここでは、このテーブルに両方の列のフルテキスト インデックスがあるとします。
このテーブルで「John Smith」という名前の人をすべて検索したいとします。次のクエリは、これを達成するための完全に合理的な方法のようです。
SELECT * from People p
INNER JOIN CONTAINSTABLE(People,*,'"John*" AND "Smith*"')
残念ながら、 Peopleテーブルに "John" と "Smith" の両方を FirstName 列または LastName 列に含むレコードがないと仮定すると、結果は返されません。FirstName 列が「John」で、LastName 列が「Smith」のレコード、またはその逆のレコードには一致しません。
私の質問はこれです:私が上でやろうとしていることをどのように達成しますか? 上記の例は単純化されていることを考慮してください。私が扱っている実際のテーブルには 10 列あり、受け取った入力は標準のワード ブレーカー (スペース、ダッシュなど) に基づいて分割された単一の文字列です。