表结构如下id  自动
vchar  字符串(里面保存着有规则的字符串 例如:1,3,6,89,43)现在想查询 表中vchar字段所有符合 客户输入数字的查询结果例如客户输入2  则在数据库中查询 vchar逗号分隔符规则中满足2的1,2  满足23,4 不满足2,78,43 满足这条查询改怎么写?

解决方案 »

  1.   

    select * from 表 where charindex(',2,',','+vchar+',')>0
      

  2.   

    declare @s varchar(2)
    set @s='2'
    select * from tb where '%,'+@s+',%' like ','+vchar+','
      

  3.   


    --方法一:
    Select * From 表 Where CharIndex(',' + Rtrim(id) + ',' , ',' + vchar + ',') > 0
      

  4.   

    --方法二:
    Select * From 表 Where  ',' + vchar + ',' Like '%,' + Rtrim(id) + ',%'
      

  5.   

    Declare @ID Int 
    Select @ID = 2
    --方法一:
    Select * From 表 Where CharIndex(',' + Rtrim(@ID) + ',' , ',' + vchar + ',') >0 
    --方法二:
    Select * From 表 Where  ',' + vchar + ',' Like '%,' + Rtrim(@ID) + ',%'
      

  6.   

    select * from 表 where patindex('%,2,%',','+vchar+',')>0select * from 表 where charindex(',2,',','+vchar+',')>0
    select * from 表 where ','+vchar+',' like '%,2,%'
      

  7.   

    select * from 表 where patindex(%,2,%,','+vchar+',')>0
      

  8.   

    select * from tb where charindex(',' + '2' + ',' , ',' + id + ',') > 0
      

  9.   

    select * from tb where charindex(',' + '2' + ',' , ',' + vchar + ',') > 0
      

  10.   

    --两边都加上逗号,再搜索
    --如果在Access中:select * from 表名 where instr("," & 字段名 & ",",',2,')>0--或(纯Access)
    select * from 表名 where "," & 字段名 & "," like '*,2,*'(ADO访问MDB)
    select * from 表名 where "," & 字段名 & "," like '%,2,%'--如果在SQL Server中:select * from 表名 where charindex(',2,',',' + 字段名 + ',')>0--或select * from 表名 where "," & 字段名 & "," like '%,2,%'
      

  11.   

    SMT_ypxxone_id="SMT_ypxxone_id"
          sql="select * from En_Company where instr(," & SMT_ypxxone_id & ",,',25,')>0 order by SMT_begindate desc"还是有问题
      

  12.   

    trySMT_ypxxone_id="SMT_ypxxone_id"
          sql="select * from En_Company where CharIndex(',25,' , ',' + Rtrim(" & SMT_ypxxone_id & ") + ',')>0 order by SMT_begindate desc"
      

  13.   

    第一句沒看到作用,如果是那樣的話,可以直接這麼寫sql="select * from En_Company where CharIndex(',25,' , ',' + Rtrim(SMT_ypxxone_id) + ',')>0 order by SMT_begindate desc"
      

  14.   

    ACCESS種這麼寫sql="select * from En_Company where instr(',' + SMT_ypxxone_id + ',' , ',25,'  )>0 order by SMT_begindate desc"
      

  15.   

    谢谢,刚才大家告诉我的都是vba的写法,现在搞清楚为什么出错了 sql= "select * from En_Company where ','+SMT_ypxxone_id+',' like '%, 25,%'"现在就好了
      

  16.   

    25前面的空格要去掉sql= "select * from En_Company where ','+SMT_ypxxone_id+',' like '%,25,%'"
      

  17.   

    我数据库里存储的就是带一个空格的,没办法,直接从表单里post过来就是这样,谢谢.