この場合、MySQL 5.6の新しいInnoDB全文検索機能が役立ちます。次のクエリを使用します:
SELECT MATCH(column) AGAINST('(word1* word2*) ("word1 word1")' IN BOOLEAN MODE) score, id, column
FROM table
having score>0
ORDER BY score
DESC limit 10;
ここで、( )
単語を部分式にグループ化します。最初のグループにはlike word%
があります 意味; 2番目は正確なフレーズを探します。スコアはフロートとして返されます。