SQL 如何最大限度匹配搜索值 SQL 列上有字符串
一般使用SELECT * FROM XXX WHERE CCC LIKE '%BBB%'
搜索,如果:字符串为‘香港观光一天’,搜“香港”可以搜到,但客户搜索“香港一天”这种
搜索,上面是无法处理的。
如何解决?搜索‘香港一天’ 也能把列中包含字符串‘香港一天’ 的‘香港观光一天’
作为符合搜索结果列出来?
SQL??搜索?匹配
分享到:
------解决方案--------------------
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]('香港一天'))