2

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)

しかし、クエリ ブラウザには結果が返されず、エラーや警告も返されません。

4

2 に答える 2