PHP / MYSQL与查询匹配

时间:2012-05-30 19:19:40

标签: mysql match against

我正在尝试针对查询运行匹配,但它无法正常工作。我在这两个字段上创建了一个全文索引。但是在“关系”这个词之前我得到了sql错误。这是sql:

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

我也尝试过只搜索shdescript并只搜索ldescript但得到同样的错误。我也试过没有空格的searchstring。据我所知,你应该在括号中用逗号分隔搜索字符串。我究竟做错了什么?感谢。

4 个答案:

答案 0 :(得分:4)

在搜索字符串周围添加引号。

答案 1 :(得分:1)

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

另外,请确保您保护自己免受令人讨厌的SQL注入威胁,请阅读更多here

答案 2 :(得分:1)

尝试引用你的字符串(即'浪漫'和'关系')

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

答案 3 :(得分:0)

我相信您的AGAINST必须在引号中。来自:

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

  

AGAINST需要一个字符串来搜索,以及一个可选的修饰符   指示要执行的搜索类型。搜索字符串必须是a   文字字符串,不是变量或列名。