2011-07-24 8 views
0

私は、クエリMATCH(name)AGAINST( 'term')は機能しません。

$query = mysql_query("SELECT id FROM products WHERE name LIKE '%$term%'"); 

ためにワイルドカードを使用し、それは私に結果が得られます。 でも、私が使用するときは

$query = mysql_query("SELECT id FROM products WHERE MATCH (name) AGAINST ('$term')"); 

私には表示されません。 なぜですか?

+2

あなたはmysql' 'を通じて直接クエリを実行し、それがどんな結果をもたらすかどうかを確認してみてもらえますか?また、 'name = 'Smd Strip Daylight Led 100cm''のようなダイレクトルックアップを試してみてください。 –

+1

mysql_query行に 'or die(mysql_error());'を追加してみてください。 – Mike

+0

Mikeがsugestedとして、間違っている可能性があるすべてのコードをチェックします(mysqlのクエリ呼び出しやファイルのオープンなど)。今、私たちは千の質問をすることができます。ファイル名は正しいですか?開かれていますか?データベースへの接続が失敗するかどうか正しいデータベースに接続していますか? INSERTは機能しますか? –

答えて

1

一つだけの製品があるので、あなたは、50%のしきい値に遭遇するかもしれません。また

、行の50%以上に存在している単語が 共通とみなされ、一致していません。修飾語が指定されていない場合、全文検索は自然言語で行われます。

Full Text Search

+0

あなたは私を冗談にする必要があります。ありがとう! – EnexoOnoma

+0

あなたは 'IN BOOLEAN MODE'を使ってその仮定をテストできます。しきい値は50%ではありません。 – Jacob

関連する問題