如果number_id数组的值事:
1
3
6在客户端利用数组拼成'1,3,6'的字符串,传给一个存储过程来查询。
或者拼出以下语句:
Select * from member where id in (1,3,6)再客户端容易解决。

解决方案 »

  1.   

    同意楼上的,把数组先合成
    (numberId(0),Number_id(1),Number_id(2),.....)可以先判断某个值是否为 空,不空则合成,空则next
    最后用Select * from member where id in (.....)
      

  2.   

    或者把number_id的值存入一個temp table,然後再用member.id與temp table做join即可。
      

  3.   

    建一个临时表的方法不错,将数组值先存放到此表中,然后主表与此临时表连接即可。
    create table #temp (
    int id )
    将数组数据插入#temp中
    select * from tablename A join #temp B on left A.id = B.id
      

  4.   

    用零时表和用in(x,x,x)的方法在性能上有和差别呢?
    是不是通常不建议用集合操作
      

  5.   

    Select * from member where id in ('arr1','arr2','arr3',.....)