我有一个自动完成的搜索框,我正在为客户工作。数据库在SQL Server中,并且有大量数据。
我已经能够对数据库进行标准LIKE查询,这不是一个问题,但客户端已经提出了一些要求。
假设搜索关键字是“伦敦机场”
显示的结果必须具有一定的优先权。以下是优先标准:
该要求实际上是首先包括英国的结果,但我已经处理过了。
假设表格是
Airport_name |国家|城市| geo_id等等。
我创建了一个表函数,将关键字拆分为结果表行,然后我就完成了类似的查询 喜欢'%split_table.result%'
麻烦就是第一个标准,上面的方法是进行OR查询,只显示伦敦和机场的结果......我想在这里做一个AND查询,如果我可以使用拆分表,我会很感激我创造的功能。
我需要了解如何设置这些优先级。
我真的需要一些帮助。
答案 0 :(得分:1)
一个行动计划是建立单独的结果集并将它们结合在一起
select Id, Name
from
(
Select Id, Name, 1 as SearchRank from tables where (primary filter)
union
Select Id, Name, 2 as SearchRank from tables where (secondary filter)
union
Select Id, Name, 3 as SearchRank from tables where (tertiary filter)
) results
group by Id, Name
order by Min(SearchRank)
答案 1 :(得分:0)
希望这有助于您使用sql server
http://technet.microsoft.com/en-us/library/ms142559%28v=sql.105%29.aspx