SQL 如何最大限度匹配搜索值

dgdyq 2013-11-04 04:46:42
SQL 列上有字符串
一般使用SELECT * FROM XXX WHERE CCC LIKE '%BBB%'
搜索,如果:字符串为‘香港观光一天’,搜“香港”可以搜到,但客户搜索“香港一天”这种
搜索,上面是无法处理的。
如何解决?搜索‘香港一天’ 也能把列中包含字符串‘香港一天’ 的‘香港观光一天’
作为符合搜索结果列出来?
...全文
175 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
LongRui888 2013-11-04
  • 打赏
  • 举报
回复
但是用这种like来做模糊匹配,分词匹配,效率太差了,建议用 sql server的全文检索技术把
LongRui888 2013-11-04
  • 打赏
  • 举报
回复

declare @table table (connect varchar(30))
insert into @table
select '香港观光一天'

select * from @table 
where connect like '%香港%一天%'

/*
connect
------------------------------
香港观光一天
*/
ai_li7758521 2013-11-04
  • 打赏
  • 举报
回复
引用 1 楼 DBA_Huangzj 的回复:
create function [dbo].[m_fuzzyquery_v1]
(
    @str nvarchar(2000)
)  
returns nvarchar(2000)
as  
begin  
       declare @count int,@i int;
       declare @newchar nvarchar(200),@nn nvarchar(300),@hh nvarchar(200)
       set @count=len(@str);set @i=1;set @nn='';
       while @i<@count+1
       begin
           set @newchar=substring(@str,@i,1)+'%'
           set @nn=@nn+@newchar;
           set @i=@i+1;
       END
    set @hh='%'+@nn
    return @hh
end


declare @table table (connect varchar(30))
insert into @table
select '香港观光一天'

select * from @table where connect like ( select dbo.[m_fuzzyquery_v1]('香港一天'))

/*
connect
------------------------------
香港观光一天
*/
其实这是个分词问题。
發糞塗牆 2013-11-04
  • 打赏
  • 举报
回复
create function [dbo].[m_fuzzyquery_v1]
(
    @str nvarchar(2000)
)  
returns nvarchar(2000)
as  
begin  
       declare @count int,@i int;
       declare @newchar nvarchar(200),@nn nvarchar(300),@hh nvarchar(200)
       set @count=len(@str);set @i=1;set @nn='';
       while @i<@count+1
       begin
           set @newchar=substring(@str,@i,1)+'%'
           set @nn=@nn+@newchar;
           set @i=@i+1;
       END
    set @hh='%'+@nn
    return @hh
end


declare @table table (connect varchar(30))
insert into @table
select '香港观光一天'

select * from @table where connect like ( select dbo.[m_fuzzyquery_v1]('香港一天'))

/*
connect
------------------------------
香港观光一天
*/

22,210

社区成员

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

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