以前は、いくつかの単語について 2 つの列をチェックする検索がありました。両方の列には提供された単語が含まれている必要があるため、AND を使用します...列で FULLTEXT INDEX が使用されていることは間違いありません。
選択は多かれ少なかれ次のようになります。
SELECT
*
FROM SomeTable
WHERE (CONTAINS(Column1, 'word1 OR word2') AND CONTAINS(Column2, 'word3 OR word4'))
次に、結果にランキングを追加する必要があります。CONTAINSTABLE 機能を使用したいと思います... 1 つの列だけが単純です。何かのようなもの:
SELECT
SomeTable.*,
tmp.RANK
FROM SomeTable
INNER JOIN CONTAINSTABLE(SomeTable, Column1, 'word1 OR word2') as tmp
ON tmp.[KEY] = SomeTable.ID
2列でそれを行うことは可能ですが、列1で単語1または単語2を検索するだけでよいと考えてください(列2に単語1または単語2があるかどうかは関係ありません)。また、WHERE 句に含まれていた AND も考慮してください。次のようなものがありますか:
SELECT
SomeTable.*,
tmp.RANK
FROM SomeTable
INNER JOIN CONTAINSTABLE(SomeTable, (Column1, Column2), 'column1:(word1 OR word2) AND column2:(word3 OR word4)') as tmp
ON tmp.[KEY] = SomeTable.ID