我的表结构如下(这是我的一个属性目录)id        parentid         name
52        -1               a
53        52               b
54        52               c
55        53               d
56        53               e
57        54               f
58        55               g请问如何使用一条SQL命令删除id为52和parentid为52、53、54、55的这些记录?(急!谢)

解决方案 »

  1.   

    因为不清楚你的表哪些是主键,先写一条,可以作为参考:DELETE FROM TBLTEST WHERE ID='52' OR PARENTID IN ('52','53','54','55');
      

  2.   

    delete from t where id=52 or parentid in (52,53,54)
      

  3.   

    delete from test where id=52 or parentid in (52,53,54,55);
      

  4.   

    很简单的语句啊?
    楼上的都可以实现。其实你的意思是不是就是删除 ID为 52 的所有记录(其中包括=52的或52的无限下级的所有记录)。你可以用一个递归来写出你给出一个ID后,得到这个ID的所有的ID包括子级。
    先看看我说的是不是你的问题,如果有不明白的Q我。
    QQ:149318413
      

  5.   

    我倒,不是全没有了吗??
    DELETE FROM TBLTEST
      

  6.   

    delete from t where id=52 or parentid in (select id from t where parentid = 52)
      

  7.   

    楼主是删除所有子级的数据.
    用Sql可以写一个循环,最好在存储过程中写,这样效率会高些.
      

  8.   

    x1234521老兄,我就是要在数据库中删除parentid=52的所有子级,给段代码好吗?
      

  9.   

    我不知道怎么才能得出ID52下的所有子级,主键是ID