我不知道如何在标题中解释这一点,当我搜索united kingdom
这样的典型查询并且记录包含{{1}的记录时,我遇到了一个问题。 1}}我不需要将它包含在查询结果中,即使搜索united states
我也会从new york
(英格兰)返回一些记录。
另一方面,当搜索york
时,查询不返回任何记录,但在数据库中它存在。
我需要解决此查询的问题,它应该搜索与输入的查询匹配的行并删除与选项匹配的行 - 当我说选项时,我的意思是maidstone
。
搜索rec.column_name = etc...
时:
united kingdom
搜索WHERE ( MATCH (rec.street_name, rec.city, rec.state, rec.country) AGAINST ('united kingdom' IN BOOLEAN MODE)
OR ( rec.street_name = 'united kingdom'
OR rec.city = 'united kingdom'
OR rec.state = 'united kingdom'
OR rec.country = 'united kingdom'
)
) AND ( rec.visible_listing = 1 AND rec.marked_delete = 0 AND rec.is_archive = 0 )
时:
maidstone
这是表中的总记录:
WHERE ( MATCH (rec.street_name, rec.city, rec.state, rec.country) AGAINST ('maidstone' IN BOOLEAN MODE)
OR ( rec.street_name = 'maidstone'
OR rec.city = 'maidstone'
OR rec.state = 'maidstone'
OR rec.country = 'maidstone'
)
) AND ( rec.visible_listing = 1 AND rec.marked_delete = 0 AND rec.is_archive = 0 )
如何创建一个返回非错误数据的好搜索查询?
答案 0 :(得分:2)
将搜索字符串放在双引号内:'"united kingdom"'
以获得完全匹配。
如果您要搜索这两个字,但不一定要彼此相邻,可以使用+运算符:'+united +kingdom'
。
请注意,如果对搜索的列使用二进制排序规则,搜索将区分大小写。