这样一个表:
A B C
100 长虹 A8977
102 海信 Abdki
102 长虹 Gdkg
103 长虹 液晶39
104 长虹 新款液晶41
如何能实现以下类似搜索的功能
比如查:长虹彩电
结果:
A B C
100 长虹 A8977
102 长虹 Gdkg
103 长虹 液晶39
104 长虹 新款液晶41
比如查:长虹液晶
结果:
比如查:长虹彩电
103 长虹 液晶39
104 长虹 新款液晶41
意思就是能实现像搜索引擎那样的类似搜索功能,跪求!
------解决方案--------------------
--原始数据:#Test
create table #Test(A int,B varchar(4),C varchar(10))
insert #Test
select 100, '长虹 ', 'A8977 ' union all
select 102, '海信 ', 'Abdki ' union all
select 102, '长虹 ', 'Gdkg ' union all
select 103, '长虹 ', '液晶39 ' union all
select 104, '长虹 ', '新款液晶41 '
--创建关键字典——需要定期手工添加、维护。
create table #Key(KW varchar(1000),TB sysname,Search varchar(1000))
insert #Key select '长虹,长虹彩电 ', '#Test ', 'B= ' '长虹 ' ' '
insert #Key select '长虹液晶,长虹液晶电视 ', '#Test ', 'B= ' '长虹 ' ' and C like ' '%液晶% ' ' '
declare @KW varchar(100),@sql varchar(1000)
select @KW= '长虹彩电 ',@sql=null
select top 1 @sql= 'select * from '+TB+ ' where '+Search from #Key where charindex(@KW,KW)> 0
exec (@sql)
/*
A B C
100 长虹 A8977
102 长虹 Gdkg
103 长虹 液晶39
104 长虹 新款液晶41
*/
select @KW= '长虹液晶 ',@sql=null
select top 1 @sql= 'select * from '+TB+ ' where '+Search from #Key where charindex(@KW,KW)> 0
exec (@sql)
/*
A B C
103 长虹 液晶39
104 长虹 新款液晶41
*/
--删除对象
drop table #Test,#Key