我正在尝试进行精确搜索,但在使用“Sonal”进行搜索时遇到问题,我从记录中得到的结果是“Sonal”& “个人”。当我删除var之前的%,然后获取结果哪个记录从“Sonal”开始,并且没有发现该文本在任何地方都有“Sonal”。
以下是查询:
AND (
lower(document_text) LIKE '%".$search_name2."%'
OR lower(customdoc_name) LIKE '%".$search_name2."%'
OR lower(doc_tags) LIKE '%".$search_name2."%'
)
记录。 1 - 个人证书
建议2 - Sonal证书。
我想在搜索“Sonal”时只返回第二条记录。
我没有使用FULLTEXT字段。
答案 0 :(得分:2)
这可能有所帮助,
添加字符串后面的空格或仅前后和后面。通过这个,你会得到“sonal”的结果,如果是字符串的开头或字符串的中间或字符串的结尾。
AND (
lower(document_text) LIKE '%".$search_name2." %'
OR lower(customdoc_name) LIKE '% ".$search_name2." %'
OR lower(doc_tags) LIKE ' %".$search_name2."%'
)
答案 1 :(得分:1)
使用REGEXP
尝试关注..
AND (
lower(document_text) REGEXP '[[:<:]]".$search_name2."[[:>:]]'
OR lower(customdoc_name) REGEXP '[[:<:]]".$search_name2."[[:>:]]'
OR lower(doc_tags) REGEXP '[[:<:]]".$search_name2."[[:>:]]'
)
表现明智不好..但你会得到确切的结果..
答案 2 :(得分:0)
“%”运算符仅以这种方式运行。
这是一个通配符,意思是任何字符串。 所以