like 模糊查询语句

tianlebest 2011-12-15 02:35:23
表A有 中字段 title(标题) ,tags(关键字,多个关键字用,逗号隔开)

现在进行关键字查询 先进行所有的 tags 匹配,如果没有再进行 title匹配,要求 有tags关键字匹配 排在前面,然后再排title匹配的
...全文
118 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
苦苦的潜行者 2011-12-15
  • 打赏
  • 举报
回复
以查找"vbn"为例


create table t1 (title varchar(10),tags varchar(20))
insert t1
select 'abc','zxc,vbn,qwer' union all
select 'vbn','tyu,uio,vbn' union all
select 'vbn','tyu,uio,vbn' union all
select 'abc','abc,vbn,tyu' union all
select 'vbn','tyu,uio' union all
select 'vbn',null union all
select null,'vbn'
go

select * from t1
-- where
-- tags like '%vbn%'
-- or
-- title like '%vbn%'
order by
(case when charindex(','+tags+',',',vbn,')>0 then 0
when tags is null then 2
else 1
end
)

/*
(所影响的行数为 7 行)
title tags
----- -------
NULL vbn
abc zxc,vbn,qwer
vbn tyu,uio,vbn
vbn tyu,uio,vbn
abc abc,vbn,tyu
vbn tyu,uio
vbn NULL
*/
go
drop table t1


是这样吗?
多条件排序,我也很混乱...
快溜 2011-12-15
  • 打赏
  • 举报
回复
貌似需要把关键字拆分开来比较啊
--小F-- 2011-12-15
  • 打赏
  • 举报
回复
order by case when charindex(','+titile+',',','+关键字+',')>0 then 1 else 0 end

22,298

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧