日期:2014-05-16  浏览次数:20772 次

大数据量排序情况下,如何delete之前已经select的内容?
我有个表t,含a,b,c,d四个字段,无主外键、约束关系等,但数据量很大,每次操作只能排序后操作一部分,比如 select * from t order by t.a asc limit 200 offset 1000,然后,我想删除这次选择出来的这200条记录,如何实现呢?

------解决方案--------------------
delete from t order by t.a asc limit 200 offset 1000
------解决方案--------------------
哦,DELETE中只能 

delete from t order by t.a asc limit 1000
------解决方案--------------------
试一下
delete a from t a,(select * from t order by t.a asc limit 200 offset 1000) b where a.id=b.id
------解决方案--------------------
本身这200条数据就不是唯一固定的 因为按照a排序之后 插入了一些数据 再按照a排序结果集就变了 所以应该在表上加一个自增列 是唯一的标识每一行