2015-11-24 29 views
1

目前我的代碼遍歷了我的sqlite數據庫,並獲取了數字等於1的行數。如果是這種情況,我刪除了該行數。它運作良好,但我想知道如果我只能在sqlite中做同樣的事情,而不是做所有這些循環和不斷掛鉤的badtadase。在sqlite中刪除行,其中數字行數<1

這裏是代碼我現在有

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數據庫數(基本標識符)的列表> 0

getRowCount返回行的數有數字作爲標識符

這可以做爲一個單一的SQL刪除語句,或者是我正在做的所有循環將成爲我的解決方案?

+0

@ FrankN.Stein否我想刪除所有具有scan_count> 0的記錄,除非該記錄多次使用db中的標識符。如果一條記錄有多次存在的標識符,我想保留它們 – tyczj

+0

您可以以某種方式發佈數據庫模式嗎?我不清楚有多少桌子和場地在哪裏。 – nasch

回答

0

像這樣的東西應該適合你。

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

將> 1更改爲== 1,它完全符合我的要求 – tyczj