表tab中有以下记录:
id userids
1 11,15,21
2 11,23,45,12
3 55,66,77我的sql语句中用到一个变量 ls_c,现ls_c='11' ,现想检索tab中userids包含ls_c内容的记录。
请问怎么组合这一语句:
select * from tab where ls_c in (userids) ?
id userids
1 11,15,21
2 11,23,45,12
3 55,66,77我的sql语句中用到一个变量 ls_c,现ls_c='11' ,现想检索tab中userids包含ls_c内容的记录。
请问怎么组合这一语句:
select * from tab where ls_c in (userids) ?
解决方案 »
- sql 嵌套基础
- sql2008 安装时数据库引擎服务失败
- 通过命令行参数安装 SQL 2005 设置哪个参数
- SQL2005存储过程如何转换成2000?
- 关于BOM的问题。
- 如何在SQL里求得某两行的同一列内容的相关性?
- 对于大型数据库的优化都有那些方法
- 请问各位大虾,用DAO如何连接到SQLServer,拜托急急急急急急!!!!!!!
- 哪位大虾能够解决smartupload上传图片到数据库的问题,愿送出200分!!!有代码如下,只是不知为何出错??请指教!!
- Mybatis select 没有获取更新数据 (缓存 ?)
- 数据库操作执行时间的问题!
- |M| 在表中用联合查询 和查询出来后用字段去再查询 他的之间的效率相差有多大
set @ls_c='11'
select * from tab where charindex( ','+@ls_c+',' , ','+userids+',' )>0
insert into test
select 1,'11,15,21'
union all select 2,'11,23,45,12'
union all select 3,'55,66,77'declare @ls_c varchar(20)
set @ls_c='11' select *
from test
where userids like '%' + @ls_c + '%'drop table test-------------------
id userids
1 11,15,21
2 11,23,45,12
(所影响的行数为 2 行)
楼上,我觉得得这样判断。
避免出现111,211这样的userid会影响like判断
Set @ls_c='11'
---方法1
Select * From tab Where CharIndex(','+@ls_c+',',','+userids+',')>0
---方法2
Select * From tab Where PatIndex('%,'+@ls_c+',%',','+userids+',')>0
---方法3
Select * From tab Where ','+userids+',' Like '%,'+@ls_c+',%'
insert into yang_kun
select 1,'11,15,21'
union all select 2,'11,23,45,12'
union all select 3,'55,66,77'declare @ls_c varchar(20)
set @ls_c='11' select * from yang_kun where Charindex(','+@ls_c+',',','+userids+',') > 0
-------------------------------------------
id userids
1 11,15,21
2 11,23,45,12
from test
where ',' + userids + ',' like '%,' + @ls_c + ',%'
Create Table tab (id int,userids varchar(100))
Insert Tab Select 1, '11,15,21'
Union All Select 2, '11,23,45,12'
Union All Select 3, '55,66,77'Select * From Tab---查询结果
Declare @ls_c Varchar(10)
Set @ls_c='11'
---方法1
Select * From tab Where CharIndex(','+@ls_c+',',','+userids+',')>0
---方法2
Select * From tab Where PatIndex('%,'+@ls_c+',%',','+userids+',')>0
---方法3
Select * From tab Where ','+userids+',' Like '%,'+@ls_c+',%'
---删除测试环境
Drop Table tab
--结果都为
/*
id userids
----------- ------------
1 11,15,21
2 11,23,45,12(所影响的行数为 2 行)
*/
create table #tmp2(id int,userids varchar(200))
insert into #tmp2 select 1,'11,15,21'
union all select 2,'11,23,45,12'
union all select 3,'55,66,77'select * from #tmp2 where charindex(','+'11'+',',','+userids+',')>0结果:
id userids
--------------------
1 11,15,21
2 11,23,45,12