Php Mysql与具有特殊特许搜索的查询匹配
我对查询进行了以下匹配,该查询根据搜索短语从数据库表中搜索记录Php Mysql与具有特殊特许搜索的查询匹配,php,mysql,Php,Mysql,我对查询进行了以下匹配,该查询根据搜索短语从数据库表中搜索记录 SELECT * FROM My_Table WHERE MATCH (catchall) AGAINST ('"horse"' IN BOOLEAN MODE) 此查询工作正常。当搜索短语包含诸如“(”等特殊字符时,它只跳过这些特殊字符。 如果我搜索“(horse)”,它给我的结果与搜索“horse”的结果相同 这是否意味着“匹配查询”不能使用特殊字符,或者我遗漏了什么。请建议。谢谢。 我尝试以布尔模式从查询中删除,但没
SELECT * FROM My_Table WHERE MATCH (catchall) AGAINST ('"horse"' IN BOOLEAN MODE)
此查询工作正常。当搜索短语包含诸如“(”等特殊字符时,它只跳过这些特殊字符。
如果我搜索“(horse)”,它给我的结果与搜索“horse”的结果相同
这是否意味着“匹配查询”不能使用特殊字符,或者我遗漏了什么。请建议。谢谢。
我尝试以布尔模式从查询中删除,但没有成功。来自:
括号将单词分组为子表达式。括号中的组可以嵌套
如果您想将prenthes视为“文字角色”,有两种可能:
如果要更改被视为word的字符集
角色,您可以通过两种方式来实现。假设您希望
连字符(“-”)作为单词字符。请使用以下任一选项
方法:
修改MySQL源代码:在myisam/ftdefs.h中,查看true\u word\u char()
和misc_word_char()宏。向其中一个宏添加“-”,然后
重新编译MySQL
修改字符集文件:这不需要重新编译
true\u word\u char()宏使用“字符类型”表来区分
来自其他字符的字母和数字..您可以编辑
要指定的字符集XML文件之一中的内容
“-”是一个“字母”。然后将给定的字符集用于
全文索引
在进行修改之后,必须为每个索引重新生成索引
包含任何全文索引的表
第三种方法是根本不使用
匹配···································并放慢查询速度。谢谢您的回复@oezi。我是否应该添加所有特殊字符,以便它与matach一起处理类似于“”的查询,等等。这会创建任何安全整体还是完全安全。我不想使用like query。这不会创建安全漏洞或类似的东西-但你将无法再使用这些特殊角色的功能,所以我只添加绝对必要的功能。明白了。@oezi最后一个问题是,有没有办法逃脱ch查询中的字符?
SELECT * FROM My_Table WHERE MATCH (catchall) AGAINST ('"(horse)"' IN BOOLEAN MODE)