表topoic
字段
id title
1 2010上海世博会
2 上面那棵树
3 面朝大海,春暖花开
3 春暖花开
现在模糊查询表topic select * From topic where title like '%上海%'得到的结果是
id title
1 2010上海世博会现在我需要根据模糊查询的字一个一个的匹配,比如查询“上海花”则在列表中搜索title为“上” 或者“海”或者“花”的记录 结果为:
id title
1 2010上海世博会
2 上面那棵树
3 面朝大海,春暖花开
3 春暖花开求高手!
字段
id title
1 2010上海世博会
2 上面那棵树
3 面朝大海,春暖花开
3 春暖花开
现在模糊查询表topic select * From topic where title like '%上海%'得到的结果是
id title
1 2010上海世博会现在我需要根据模糊查询的字一个一个的匹配,比如查询“上海花”则在列表中搜索title为“上” 或者“海”或者“花”的记录 结果为:
id title
1 2010上海世博会
2 上面那棵树
3 面朝大海,春暖花开
3 春暖花开求高手!
select ...from topic where patindex('%[上],[海],[花]%',title)>0
CREATE TABLE atest(id INT, qy varchar(100))
INSERT atest select 1 ,'广州双一乳胶'
UNION ALL SELECT 2 ,'湖南金博科技有限责任公司'
GO
CREATE FUNCTION GetSS(@p varchar(100),@q varchar(100))
RETURNS BIT
AS
BEGIN
DECLARE @min varchar(100),@max varchar(100)
DECLARE @I INT,@Step INT
DECLARE @r BIT
SET @r=0
SELECT @I=1,@Step=0
IF len(@p)<len(@q)
SELECT @max=@q,@min=@p
ELSE
SELECT @max=@p,@min=@q
WHILE @I<=len(@min)
BEGIN
IF charindex(substring(@min,@I,1),@max)>0
SET @Step=@Step+1
SET @I=@I+1
END
IF @Step<>0 AND @Step>=len(@min)/2
SET @r=1
RETURN @r
END
GO
DECLARE @a varchar(100)
SET @a='湖南科技'
SELECT * FROM atest WHERE dbo.getss(@a,qy)=1
SET @a='广州广橡集团有限公司双一乳胶厂'
SELECT * FROM atest WHERE dbo.getss(@a,qy)=1--result
/*id qy
----------- ------------------------------
2 湖南金博科技有限责任公司(所影响的行数为 1 行)id qy
----------- ------------------------------
1 广州双一乳胶(所影响的行数为 1 行)*/