目前我的代码通过我的sqlite数据库并获取数字等于1的行数。如果是这种情况,我删除具有该数字的行。它运作良好,但我想知道我是否可以在sqlite中做同样的事情,而不是做所有这些循环和不断的petadase钉挂。
这是我目前的代码
public void deleteSession(){
ArrayList<long> numbers = getScannedNumbers();
for(int i=0; i<numbers.size(); i++){
int count = getRowCount(numbers.get(i).number);
if(count == 1){
//delete that row
}
}
}
getScannedNumbers
返回数据库中的数字列表(基本上是标识符),其中名为scan_count
的列是&gt; 0
getRowCount
返回将数字作为标识符的行数
这可以作为单个sql delete语句完成,还是我正在做的所有循环将成为我的解决方案?
答案 0 :(得分:0)
这样的事情对你有用。
DELETE FROM mytab
WHERE myid IN
(
SELECT myid
FROM mytab
GROUP BY myid
HAVING count(*) > 1
)