1

我正在尝试对查询进行匹配,但它不起作用。我在这两个字段上创建了一个全文索引。但是在“关系”这个词之前出现了 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 回答