MySQL の全文索引に問題があります。アンダースコアが単語の一部として扱われます (なぜですか? わかりません)。これは、テーブルにある文字列です。VA_-_Some_Album
そして、これはそのクエリです:
SELECT
*
FROM
`mytable`
WHERE
MATCH (`name`) AGAINST ('+Some* +Album*' IN BOOLEAN MODE)
ORDER BY `sdate` DESC
LIMIT 3
+*Some*
アンダースコアが単語の一部であるため ( の_Some
代わりに)に変更しない限り、MySQL はこのクエリに対して空のセットを返しますSome
。余分なアスタリスク (*) を追加すると、プラス記号が機能しなくなり、「AND」が実行されないため、これは私にとっては良くありません。
文字セットの定義を変更し、フルテキスト インデックスを再構築しようとしましたが、何もしませんでした。
何か案は?文字列の保存方法を変更することは私次第ではありません。ありがとうございました!