当前位置: 代码迷 >> Sql Server >> 模糊查询,分词。高手解答
  详细解决方案

模糊查询,分词。高手解答

热度:67   发布时间:2016-04-27 11:22:00.0
模糊查询,分词。在线等高手解答
topic表如下:
id title 
1 abc英语字母
2 中国崛起
3 装b的境界


模糊查询我想要的是根据title 模糊查询,连续的英文字母作为一个整体。 如模糊查询的内容为“abc英语”,其查询的结果与
“select * from topic where title lLIKE '%abc%' AND'%英%' AND'%语%'”。即查询结果为:
id title 
1 abc英语字母

------解决方案--------------------
太智能化了,估计要用到类似百度的搜索功能.帮顶.
------解决方案--------------------
找google吧
------解决方案--------------------
SQL code
select * from topicwhere charindex('abc',title)>0and charindex('英',title)>0and charindex('语',title)>0
------解决方案--------------------
关键是把查询内容拆分成几个字符串,然后拼SQL:
SQL code
declare @s varchar(50), @sql varchar(8000)set @sql = 'select * from topic where title like ''%'set @s = 'abc英语'declare @i intset @i = 1while @i <= len(@s)begin    if @i = 1        set @sql = @sql + substring(@s,@i,1)    else    begin        if len(substring(@s,@i,1)) <> datalength(substring(@s,@i-1,1)) or datalength(substring(@s,@i,1)) = 2            set @sql = @sql + '%'' and title like ''%' + substring(@s,@i,1)        else            set @sql = @sql + substring(@s,@i,1)    end    set @i = @i + 1endset @sql = @sql + '%'''exec(@sql)
  相关解决方案