是这样的,我数据库里有个字段,job_like字段
他里面的值都是数组集合型的,如
222,1,2,3,22,122 '第一行
1,7,3,2,8,22 '第二行
8,4,3 '第三行现在,我想在表单里输入一个值,
如果输入2由于只有第一行里有2,那么返回第一行
如果输入3,由于3行里都有3,那么将返回3行
本来想过用 like的,
可是这样不精确,因为比如提交2,他把包含22,212,26等这样的都筛选出来
还请高手指教。
他里面的值都是数组集合型的,如
222,1,2,3,22,122 '第一行
1,7,3,2,8,22 '第二行
8,4,3 '第三行现在,我想在表单里输入一个值,
如果输入2由于只有第一行里有2,那么返回第一行
如果输入3,由于3行里都有3,那么将返回3行
本来想过用 like的,
可是这样不精确,因为比如提交2,他把包含22,212,26等这样的都筛选出来
还请高手指教。
解决方案 »
- sqlserver2000,如果升级,升到哪个版本比较好呀?
- 100分 写个触发器
- 关于树的排序,高手帮忙,谢谢
- 在一个数据库中怎样调用另一个数据库中的过程
- 如何把一个SQL语句做成.EXE文件?
- 关于sql server 2005 触发器 问题
- 求助如何查询缩小表
- 这个动态sql语句错在哪啊,老通不过,谢谢了SET @strSQL='SELECT @int_allid + =count(*) FROM ForumDis WHERE F_SubNo =@ intSubNo '
- 使用sql server 2000 JDBC之???????请进
- 不对:sp_executesql N'use @db',N'@db nvarchar(25)',@db='northwind'
- 在use 后面能加变量吗
- 存储过程的问题
Set @job = 2
Select * From TableName Where ',' + job_like + '%,' Like ',' + RTrim(@job) + ',%'
Declare @job Int
Set @job = 2
Select * From TableName Where ',' + job_like + ',' Like '%,' + RTrim(@job) + ',%'
insert t select '222,1,2,3,22,122'
union all select '1,7,3,2,8,22'
union all select '8,4,3'
gocreate proc prc(@s varchar(20))
as
begin
select * from t where charindex(','+@s+',',','+job_like+',')>0
end
goexec prc '3'
exec prc '2'
godrop table t
drop proc prc
Declare @job Int
Set @job = 2
Select * From TableName Where CharIndex(',' + RTrim(@job) + ',', ',' + job_like + ',') > 0
把2换成",2,"
select charindex(',2,','222,1,2,3,22,122 ')
(job_like Varchar(100))
Insert TEST Select '222,1,2,3,22,122'
Union All Select '1,7,3,2,8,22'
Union All Select '8,4,3'
GO
Declare @job Int
Set @job = 2
--方法一:
Select * From TEST Where ',' + job_like + ',' Like '%,' + RTrim(@job) + ',%'
--方法二:
Select * From TEST Where CharIndex(',' + RTrim(@job) + ',', ',' + job_like + ',') > 0
Set @job = 3
--方法一:
Select * From TEST Where ',' + job_like + ',' Like '%,' + RTrim(@job) + ',%'
--方法二:
Select * From TEST Where CharIndex(',' + RTrim(@job) + ',', ',' + job_like + ',') > 0
GO
Drop Table TEST
--Result
/*
job_like
222,1,2,3,22,122
1,7,3,2,8,22job_like
222,1,2,3,22,122
1,7,3,2,8,22
8,4,3
*/
如果输入搜索的项是第一项或最后一项
-----
一樣沒有問題的,你試下看。
(job_like Varchar(100))
Insert TEST Select '222,1,2,3,22,122'
Union All Select '1,7,3,2,8,22'
Union All Select '8,4,3'
GO
Declare @job Int
Set @job = 122
--方法一:
Select * From TEST Where ',' + job_like + ',' Like '%,' + RTrim(@job) + ',%'
--方法二:
Select * From TEST Where CharIndex(',' + RTrim(@job) + ',', ',' + job_like + ',') > 0
GO
Drop Table TEST
--Result
/*
job_like
222,1,2,3,22,122
*/