我正在尝试针对查询运行匹配,但它无法正常工作。我在这两个字段上创建了一个全文索引。但是在“关系”这个词之前我得到了sql错误。这是sql:
"SELECT * FROM pages WHERE MATCH (shdescript,ldescript) AGAINST (romance, relationship)";
我也尝试过只搜索shdescript并只搜索ldescript但得到同样的错误。我也试过没有空格的searchstring。据我所知,你应该在括号中用逗号分隔搜索字符串。我究竟做错了什么?感谢。
答案 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 文字字符串,不是变量或列名。