如何删除50多个计数的所有行?

时间:2011-07-11 21:55:45

标签: android sqlite

我的表:

_id | state | timeStamp

我想选择state = 0的所有行,并按timeStamp对结果进行排序。我想删除所有通过特定限制的项目,比如50行。

*基本上,我不希望状态= 0

的行超过50行

我怎样才能做到这一点?我试过写一个,但我有点迷失了......

DELETE FROM表WHERE(state = 0)ORDER BY timeStamp

2 个答案:

答案 0 :(得分:1)

NOT IN语句与子查询一起使用:
DELETE FROM table WHERE state = 0 AND _id NOT IN(SELECT _id FROM table WHERE state = 0 ORDER BY timeStamp LIMIT 50);

它的作用是选择state = 0所有的行,然后在timeStamp上排序时删除所有state = 0的所有50行

答案 1 :(得分:1)

您可以找到第50行的时间戳,然后对状态为0且时间戳较旧(或者更新,适用于此处)的行执行删除语句,而不是找到的时间戳。

相关问题