比如字符串 2,4,6 
表里分别有三条记录
2
4
6当我随意修改字符串时,假如是2,3,4
那表里就成
2
3
4
请问修改时如何修改效率才高呢?谢谢

解决方案 »

  1.   

    declare @s nvarchar(100)
    set @s='2,3,4'
    select * from T where charindex(','+rtrim(COL)+',',@s)>0
      

  2.   

    declare @s nvarchar(100)
    set @s='2,3,4'
    select * from T where ','+@s+',' like '%,'+rtrim(COL)+',%'或
    select * from T where charindex(','+rtrim(COL)+',',','+@s+',')>0--或用patindex
      

  3.   

    不好意思,我数据里的字段(typeid)不是用逗号分隔的字符串存的.
    相反,我是遍历用逗号分隔的字符串,再把值插入数据库的.
    即本来字符串是2,4,6 我插入表里是
    typeid
    2
    4
    6现在的问题是,假如我修改了字符串为2,3,4
    那表里应该是
    typeid
    2
    3
    4
      

  4.   

    select * from T where charindex(','+[FIELD]+',',','+@s+',')>0