MySQL データベースで Match Against を使用する際に問題が発生しました。誰かが助けてくれることを願っています。
これは私のデータベースのデータの例です:
id name
1 really bitter chocolate
2 soft cheese
このクエリを実行すると:
SELECT * FROM food WHERE (name) LIKE "%bitter%"
これにより、最初の結果が返されます。
1 really bitter chocolate
ただし、これは非常に大きなクエリの一部であり、Match Against コードを実行すると、これらのクエリのいずれからも何も返されません。
SELECT * FROM food WHERE MATCH (name) AGAINST ("bitter")
SELECT * FROM food WHERE MATCH (name) AGAINST ("bitter", IN BOOLEAN MODE)
全文検索をオンにしており、名前の先頭を検索すると機能します。
SELECT * FROM food WHERE MATCH (name) AGAINST ("really")
SELECT * FROM food WHERE MATCH (name) AGAINST ("really", IN BOOLEAN MODE)
どちらも次を返します。
1 really bitter chocolate
解決策としてこれを読みました:http://dev.mysql.com/doc/refman/5.5/en/fulltext-boolean.html
そして、私はここを見てきました: mysql WHERE MATCH AGAINST
誰かが私がどこで間違っているかを確認したり、正しい方向に向けたりできますか?
ありがとう!
編集
以下のWoot4Mooの素晴らしい回答に従って、コードを変更して、存在しないはずのコンマを削除しました。+ も追加して一重引用符で囲みましたが、まだうまくいきません。
現在のクエリは次のようになります。
SELECT * FROM food WHERE MATCH (name) AGAINST ('+bitter' IN BOOLEAN MODE)
しかし、クエリ ブラウザには結果が返されず、エラーや警告も返されません。