1

クエリに対して一致を実行しようとしていますが、機能していません。2 つのフィールドに全文索引を作成しました。しかし、単語「関係」の直前にSQLエラーが発生しています。ここにSQLがあります:

"SELECT * FROM pages WHERE MATCH (shdescript,ldescript) AGAINST (romance, relationship)";

また、shdescript を検索して ldescript を検索しようとしましたが、同じエラーが発生します。また、スペースなしで検索文字列を試しました。私の知る限り、検索文字列の単語を括弧内のコンマで区切る必要があります。私は何を間違っていますか?ありがとう。

4

4 に答える 4

4

検索文字列を引用符で囲みます。

于 2012-05-30T19:24:13.323 に答える
1
"SELECT * FROM pages WHERE MATCH (shdescript,ldescript) AGAINST ('romance', 'relationship')";

また、厄介な SQL インジェクションの脅威から身を守るようにしてください。詳細については、こちらを参照してください。

于 2012-05-30T19:29:02.373 に答える
1

文字列を引用してみてください(つまり、「ロマンス」と「関係」)

SELECT * FROM pages WHERE MATCH (shdescript,ldescript) AGAINST ('romance', 'relationship')
于 2012-05-30T19:30:07.547 に答える
0

私はあなたAGAINSTが引用符で囲まれている必要があると信じています. から:

http://dev.mysql.com/doc/refman/4.1/en/fulltext-search.html#function_match

AGAINST は、検索する文字列と、実行する検索の種類を示すオプションの修飾子を取ります。検索文字列は、変数や列名ではなく、リテラル文字列である必要があります。

于 2012-05-30T19:30:21.467 に答える