ArrayList al = new ArrayList();
foreach()
{
    //这里是遍历一个XML取出ProdId的值加到数组里面
    al.add(prodID);
}我想实现的功能是从表中取出prodId看看它在不在这个数组里,如果不在的话就把表中的这条数据删除,就是类似于
delete from product where prodId not in(...); 请问如何实现呢?谢谢!

解决方案 »

  1.   

    arraylist里有 Contains方法,用这个来判断你要处理的值就行了。
      

  2.   


    if(!al.Contains("你从表中取出的ID"))

      //执行删除

      

  3.   

    如if (!arraylist.contains(xxx))
    {
    执行数据库的delete语句
    }
      

  4.   

    if (!al.Contains(你取出来的prodId)){
       删除该条数据
    }
      

  5.   

    我是想写成这样的SQL语句:
    delete from product where prodId not in al(数组)就是这样类似的写法,
    php里好像可以这样写:
    DELETE FROM products WHERE prodId NOT IN ('.substr($al, 1).')
    如果按照楼上几位兄弟那样,我还要用循环,逐条取ID然后再与数组中的值比较,会不会太慢了?
      

  6.   

    linq可以参考
    http://www.cnblogs.com/blusehuang/archive/2007/07/08/810485.html
      

  7.   

    if(!al.Contains(""+ID+""))

      //执行删除
      

  8.   

    这样写那ID还不是要在表里循环取出来再比较吗有没有更简单的办法,忘说了我用的是mysql
      

  9.   

    你上面只是说要删一条数据,后来看你的思路貌似是想对整个进行操作。那你为何不建个缓冲表呢。直接把ARRAYLIST里的东西全部COPY过去。如果就按你上面说的,那肯定是要遍历的呀。
      

  10.   

    那就组一段查询字符串然后delete from xxx where id in (1,2,3,4,5)这样一类不过无论怎么样,都要对arraylist做遍历。