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

时间:2015-11-24 20:02:06

标签: android sqlite android-sqlite

目前我的代码通过我的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语句完成,还是我正在做的所有循环将成为我的解决方案?

1 个答案:

答案 0 :(得分:0)

这样的事情对你有用。

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