0

次のクエリがあります。

SELECT video . * , u.name, u.username, p.avatar
FROM jos_hwdvidsvideos AS video
WHERE video.public_private = 'public'
AND MATCH (
    title, tags, description
)
AGAINST (
    'matthew:13-44-46'
)
AND video.published =1
AND video.approved = "yes"
LIMIT 0 , 30

唯一の問題は、タイトル、タグ、または説明が一致する結果が返されるmatthew:13-44-46ことですが、それに含まれるものはすべて返さmatthewれます。

4

1 に答える 1

1

「 MySQL 全文検索の微調整」に記載されているとおり:

単語の文字と見なされる文字のセットを変更する場合は、次のリストで説明するように、いくつかの方法で変更できます。変更を行った後、インデックスを含む各テーブルのインデックスを再構築する必要がありFULLTEXTます。ハイフン文字 ( '-') を単語文字として扱いたいとします。次のいずれかの方法を使用します。

または、完全一致検索を実行することもできますIN BOOLEAN MODE:

MATCH (title, tags, description) AGAINST ('"matthew:13-44-46"' IN BOOLEAN MODE)
于 2012-11-26T19:45:05.557 に答える