SQL中包含字符串的问题。

来源:百度知道 编辑:UC知道 时间:2024/06/08 18:58:21
我想要实现如下效果。
在SQLServer2000数据库中的一个字段是varchar类型的,里面的数据是类似于'102,203,301,405,504'这样的数据,我要求把其中三项小于五项满足于'105,205,305,405,505'的数据筛选出来。
可能不懂,我举个例子,如'105,205,305,401,501'满足,'105,205,303,405,502'满足,'105,205,305,401,505'满足,
'105,202,301,401,501'不满足
大家明白了吗?请指教~!!!
是大于等于三项小于五项的数据筛选出来~!

说的很难理解是吗? 就是这个字段里的数据是五个数,用逗号隔开的,然后这些数中的三项以上五项一下要满足'105,205,305,405,505'

是的,希望用sql执行

那个不满足条件的原因是只有一个'105'是属于'105,205,305,405,505'里的,我要求有三个以上五个以下的数属于'105,205,305,405,505',明白了吗?呵呵

迫切的等待答案中~~~

--补充---------------------
通过函数返回一个值来作为查询条件就OK了。。 代码:
CREATE FUNCTION AAA(@S1 VARCHAR(1000),@S2 VARCHAR(1000))
RETURNS INT
AS
BEGIN
DECLARE @I INT,@S VARCHAR(1000),@S3 VARCHAR(1000)
SET @I=0
SET @S3=@S1
WHILE @S3<>''
BEGIN
IF CHARINDEX(',',@S3)>0
SET @S=SUBSTRING(@S3,1,CHARINDEX(',',@S3))
ELSE
SET @S=@S3+','
IF CHARINDEX(@S,@S2+',')>0
SET @I=@I+1
SET @S3=SUBSTRING(@S3,LEN(@S)+1,LEN(@S3))
END
RETURN @I
END

SELECT * FROM A WHERE DBO.AAA(A,'105,205,305,405,505') BETWEEN 3 AND 4
A是你需要查找的表名 函数里面的A就代表你需要和'105,205,305,405,505'这个比较的字段名

迫切的等待答案中~~~ 我晕好难理解 呵呵
//$str 是数据库中的字符串;
$abc = "105,205,305,405,505";
$array=explode(",",$str);
$i=0;$p=0;
for($i=0;$i<=4;$i++)
{
$a = $array[$i];
if(strstr(