where user in('2729-1111','CN-4848-1111','CN-1342-1511','CN-5829-1511','CN-5982-1712','CN-0422-2812','CN-5725-0311','CN-0048-0812','CN-0028-2311 ')
括号内有居多的数据,起码上万串字符
除了in有没有 其他好的写法,
提示 不能用循环了 !

解决方案 »

  1.   

    如果不是的话 试试 exists
      

  2.   

    where user in('2729-1111','CN-4848-1111','CN-1342-1511','CN-5829-1511','CN-5982-1712','CN-0422-2812','CN-5725-0311','CN-0048-0812','CN-0028-2311 ')把这些数据放到表里面  用exits替代in试试  或者加索引试试
      

  3.   

    存储过程返回一张表存user多就好解决了。
      

  4.   

    试试把存储过程改成函数,返回一个表 表中的列值就是这些括号里面的值
    比如 '2729-1111','CN-4848-1111','CN-1342-1511'转变成
    A表col字段 
    col 
    '2729-1111'
    'CN-4848-1111'
    'CN-1342-1511'之后执行如下查询select b.*
    from 源表 b join A on b.user=A.col在b表的user上 和A表的col加上索引