用一个sql查询将url匹配的排在最前,title匹配的其次,body匹配最后

来源:互联网 发布:手机运行windows系统 编辑:程序博客网 时间:2024/05/21 18:32

假设只有一个table,名为pages,有四个字段,id, url,title,body。里面储存了很多网页,网页的url地址,title和网页的内容,然后你用一个sql查询将url匹配的排在最前,title匹配的其次,body匹配最后,没有任何字段匹配的,不返回。 

 

 

select a.[id],a.mark from

(

select [page].[id],100 as mark from [page] where [page].[url] like '%baidu%'

union

select [page].[id],50 as mark from [page] where [page].[title] like '%baidu%'

union

select [page].[id],10 as mark from [page] where [page].[body] like '%baidu%'

) as a  order by mark desc

 

 

用union 实现联合查询,在每个查询语句中定义一个临时变量mark 并给mark赋值,在最后的输出时采用mark来排序,这样实现真的好简单。其实这都考验我们对Sql的编成思想。

原创粉丝点击