删除 sqlite 中带有数字的行数 < 1 的行

Delete rows in sqlite where number of rows with a number are < 1

目前我有代码通过我的 sqlite 数据库并获取数字等于 1 的行数。如果是这种情况,我删除具有该数字的行。它工作得很好,但我想知道我是否可以在 sqlite 中做同样的事情,而不是做所有这些循环和 badtadase 的持续挂钩。

这是我目前拥有的代码

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 returns 来自数据库的数字列表(基本上是标识符),其中名为 scan_count 的列 > 0

getRowCount returns 以数字作为标识符的行数

这可以作为单个 sql 删除语句来完成,还是我正在做的所有循环将成为我的解决方案?

像这样的东西应该适合你。

DELETE FROM mytab
WHERE myid IN 
(
    SELECT myid
    FROM mytab
    GROUP BY myid
    HAVING count(*) > 1
)