总结的几种方案
1.代码中用for循环拼接sql,类似的用CHARINDEX
-- or连接
Name like '%福田%' or RegionName like '%南山%
-- and连接
Name like '%福田%' and RegionName like '%南山%
2.使用“逗号”切割要查询的字符串后放到临时表,再使用CHARINDEX函数特性
create function func_split(@str varchar(2000),@split varchar(2))
returns @table table(col varchar(20))
as
begin
while(charindex(@split,@str)<>0)
begin
insert @table(col) values (substring(@str,1,charindex(@split,@str)-1))
set @str = stuff(@str,1,charindex(@split,@str),'')
end
insert @table(col) values (@str)
return
end
go
--使用示例or条件连接,Tag为要搜索的数据表
select t.id From [dbo].[func_split]('a,b',',') s , Tag t where charindex( s.col,t.tag)>0 group by t.id
-- 使用示例and条件连接
select id,tag From [dbo].[func_split]('a,b',',') s , Tag t
where charindex( s.col,t.tag)>0
group by t.id, t.tag
having count(t.id)=(select count(*) from [dbo].[func_split]('a,b',','))
3.字段拆分成一张中间关系表
4.使用mongodb这种方便搜索的文档型数据库
5.STRING_SPLIT(sqlserver)
6.给点其他意见....