比如前台传一个字符串 1,2,3,4,5  都是id.而且是一张表的.我分割之后如何在一张表内查出这些id对应的数据

解决方案 »

  1.   

    create table t_x (name varchar2(10));
    insert into t_x values('001');
    insert into t_x values('002');
    insert into t_x values('003');
    insert into t_x values('004');
    insert into t_x values('005');
    commit;select t.*
      from t_x t,
           (select regexp_substr('001,002,003,004', '[^,]+', 1, level) str
              from dual
            connect by level <= regexp_count('001,002,003,004', ',') + 1) t1
     where t.name = t1.str
      

  2.   

    楼上技术炉火纯青,学习了。不过10g没有regexp_count这个正则表达式函数,11g以后才有。
      

  3.   


    '001,002,003,004' 用个变量代替 不就行了么??大大的意思是直接把他传过来的字符串里面的('1,2,3')给代替'001,002,003,004'么. . 是啊、
    如果都是数字的话,直接用in 应该也是可以的。select * from t_x where name in (1,2,3,4,5);
      

  4.   


    '001,002,003,004' 用个变量代替 不就行了么??大大的意思是直接把他传过来的字符串里面的('1,2,3')给代替'001,002,003,004'么. . 是啊、
    如果都是数字的话,直接用in 应该也是可以的。select * from t_x where name in (1,2,3,4,5);

    谢谢了,,这是我最快一次在csdn上解决问题.