日期:2014-05-19  浏览次数:20628 次

问一条sql语句
share字段是varchar类型的,里面存放的数据是‘1,2,24’格式的
现在我要找出该字段中所有包含1,2,3,4四个数字中任一数值的记录。


------解决方案--------------------
DB.DbCmd.CommandText = "select * from userinfo where UserName like '%1% ' or UserName like '%2% ' or UserName like '%3% ' or UserName like '%4% ' ";用一下模糊查询就可以查出来了,这条你自己按照你的数据库中的字段修改一下,我测试通过!
------解决方案--------------------
--建立測試環境
Create Table TEST
(share varchar(100))
--插入數據
Insert TEST Select '1,2,24 '
Union All Select '2,23,56 '
Union All Select '6,10,11 '
Union All Select '3,4,15 '
Union All Select '6,29,31 '
GO
--測試
--方法一:
Select * From TEST Where PatIndex( '%,[1-4],% ' , ', ' + share + ', ') > 0

--方法二:
Select * From TEST Where ', ' + share + ', ' Like '%,[1-4],% '
GO
--刪除測試環境
Drop Table TEST
--結果
/*
share
1,2,24
2,23,56
3,4,15

*/