Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何删除超过50个计数的所有行?_Android_Sqlite - Fatal编程技术网

Android 如何删除超过50个计数的所有行?

Android 如何删除超过50个计数的所有行?,android,sqlite,Android,Sqlite,我的桌子: _id | state | timeStamp 我希望选择状态为0的所有行,并按时间戳对结果排序。我不想删除超过特定限制的所有项目,例如50行 *本质上,我不希望状态为0的行超过50行 我怎样才能做到这一点?我试着写了一篇,但我有点迷路了 从state=0 ORDER BY timeStamp的表中删除将NOT IN语句与子查询一起使用: 从状态为0且_id未插入的表中删除状态为0的表中的_id按时间戳限制50排序 它所做的是选择state=0的所有行,然后在按时间戳排序时删除st

我的桌子:

_id | state | timeStamp
我希望选择状态为0的所有行,并按时间戳对结果排序。我不想删除超过特定限制的所有项目,例如50行

*本质上,我不希望状态为0的行超过50行

我怎样才能做到这一点?我试着写了一篇,但我有点迷路了

从state=0 ORDER BY timeStamp的表中删除将NOT IN语句与子查询一起使用: 从状态为0且_id未插入的表中删除状态为0的表中的_id按时间戳限制50排序


它所做的是选择state=0的所有行,然后在按时间戳排序时删除state=0的前50行。您可以找到第50行的时间戳,然后对state=0且时间戳较旧或较新的行执行delete语句,这里使用的时间戳比您找到的时间戳要多。

那么您想将表截断为50行吗?我不确定我是否理解您所说的事件是什么意思?我想是吧?基本上,我不希望状态为0的行超过50行是的,我在尝试子查询时基本上迷失了方向。。。所以我知道你有什么,但感觉第一个和最后一个SELECT命令是重复的。-是什么意思?对不起,负号错了,我在寻找正确的查询。给我一分钟:@Nicklas你不应该用NOT IN代替IN吗?你还错过了选择器中的时间戳,太好了!我得试一下。。。所以,这将保留前50个项目,并丢弃其余的?感谢你的方法想法,我认为这是完全有意义的。我仍然不知道如何编写复杂的删除查询。基本上,我希望在这个论坛的帮助下,我可以通过一个查询来了解它的工作原理