逗号链接的字符串模糊查询怎样写?

本文介绍了一种使用SQL查询特定uid在表table1中的所有记录的方法,通过两种方式实现:一是使用CHARINDEX函数确定uid的位置;二是利用LIKE操作符匹配包含目标uid的记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

表名 table1 
字段 
id  uid    
1    1,2        
2    2,6,11        
3    2          
4    3,4        
5    4,5,7      
6    6,9        

如id=2,查询得到 
id  uid    
1    1,2        
2    2,6,11 

3    2      

CHARINDEX(',',NAME)-1指定某字段中逗号开始的位置,-1是去除‘,’本身的位置 

SQL code

create table table1 (id int, uid varchar(10))
insert into table1 values(1 ,   '1,2')        
insert into table1 values(2 ,   '2,6,11')        
insert into table1 values(3 ,   '2')          
insert into table1 values(4 ,   '3,4')        
insert into table1 values(5 ,   '4,5,7')      
insert into table1 values(6 ,   '6,9')
go
declare @uid as int
set @uid = 2
 
select * from table1 where charindex(','+cast(@uid as varchar) + ',' , ','+ uid +',') > 0
/*
id          uid        
----------- ---------- 
1           1,2
2           2,6,11
3           2
 
(所影响的行数为 3 行)
*/
select * from table1 where ','+ uid +',' like '%,'+cast(@uid as varchar) + ',%'
/*
id          uid        
----------- ---------- 
1           1,2
2           2,6,11
3           2
 
(所影响的行数为 3 行)
*/
 
drop table table1        

http://bbs.youkuaiyun.com/topics/300156383


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值