+ -
当前位置:首页 → 问答吧 → 通过sql语句:关于字符串的交集查询

通过sql语句:关于字符串的交集查询

时间:2011-11-13

来源:互联网

使用独立的sql语句,希望实现字符串的交集查询,比如

有一个数据表中有一个字段 s1,其中有记录如下:

ID s1

1 ,9,12,5,27,36,11,23,
2 ,8,11,2,34,13,5,
3 ,12,19,24,35,9,

如果输入的参数为: ,9,  
那么将检索出数据
1 ,9,12,5,27,36,11,23,
3 ,12,19,24,35,9,

如果输入参数为:,11,5,
那么检索出数据:
1 ,9,12,5,27,36,11,23,
2 ,8,11,2,34,13,5,


谢谢

作者: chilli6519   发布时间: 2011-11-13

SQL code
DECLARE @S VARCHAR(100)
SET @S='11,5'

SELECT @S=REPLACE(@S,',',',%'' AND S1 LIKE ''%,')
SELECT @S='SELECT * FROM TB WHERE S1 LIKE ''%,'+@S+',%''' 
SELECT @S
--EXEC(@S)
/*
SELECT * FROM TB WHERE S1 LIKE '%,11,%' AND S1 LIKE '%,5,%'

作者: SQL777   发布时间: 2011-11-13

SQL code
declare @str varchar(20)='11,5'

select * from tb where parindex('%['+@str+']%',s1)>0

作者: ssp2009   发布时间: 2011-11-13

引用楼主 chilli6519 的回复:
使用独立的sql语句,希望实现字符串的交集查询,比如

有一个数据表中有一个字段 s1,其中有记录如下:

ID s1

1 ,9,12,5,27,36,11,23,
2 ,8,11,2,34,13,5,
3 ,12,19,24,35,9,

如果输入的参数为: ,9,
那么将检索出数据
1 ,9,12,5,27,36,11,23,
3 ,12,19,24,35,9,……

这个是在为难自己,以后数据量大了,效率会整死人

作者: SQL777   发布时间: 2011-11-13

SQL code
patindex

作者: ssp2009   发布时间: 2011-11-13

引用 3 楼 sql777 的回复:

引用楼主 chilli6519 的回复:
使用独立的sql语句,希望实现字符串的交集查询,比如

有一个数据表中有一个字段 s1,其中有记录如下:

ID s1

1 ,9,12,5,27,36,11,23,
2 ,8,11,2,34,13,5,
3 ,12,19,24,35,9,

如果输入的参数为: ,9,
那么将检索出数据
1 ,9,12,5,27,36,11,2……


谢谢指导,请问该如何修改??

作者: chilli6519   发布时间: 2011-11-13

顶起,请支持修改方案,谢谢

作者: chilli6519   发布时间: 2011-11-13