日期:2014-05-18  浏览次数:20518 次

sql中的in的问题
'比如Request( "id ")   =   1,2,3,4,5  
sql= "select   *   from   tag   where   TagID   in   ( "   &   Request( "id ")   &   ") "
' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' '

这样可以检索出   ID   等于   1或者2....的数据

现在有个问题就是   我   TagID   字段里的数据   是1,2,3,4,5这样

而   request   过来的数据是一个   比如   1  

如何实现   检索   数据库中   TagID   字段   中包含   数字   1   的所有记录呢?

也就是跟引号上面反过来检索的意思   谢谢!

------解决方案--------------------
select * from tag where ( ', '+rtrim(@id)+ ', ', ', '+TagID+ ', ')> 0
------解决方案--------------------
sql= "select * from tag where CharIndex( ', ' + Cast(TagID As Varchar) + ', ', ', ' + ( " & Request( "id ") & " + ', ') > 0 "
------解决方案--------------------
假定:
Request( "id ") = 2
TagID字段的值为 1,2,3,4这样的格式

sql= "select * from tag where ', ' + TagID + ', ' like '%, " & Request( "id ") & ",% ' "
这样就可以实现

格式为:
select * from tag where ', ' + TagID + ', ' like '%,2,% ' "

其中,2,是为了解决1,11,111,这样的问题.