2

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」が実行されないため、これは私にとっては良くありません。

文字セットの定義を変更し、フルテキスト インデックスを再構築しようとしましたが、何もしませんでした。

何か案は?文字列の保存方法を変更することは私次第ではありません。ありがとうございました!

4

1 に答える 1

0

あなたの質問はよくわかりませんが、ここを見てください:

http://dev.mysql.com/doc/refman/5.0/en/fulltext-boolean.html

そこには、_、+、*、-、<> などの違いがブール モードで説明されています。

于 2012-06-28T20:37:41.220 に答える