2013-08-05 21 views
0

我有一個iOS應用程序,用於同步Web服務中的數據。每隔一段時間一個記錄將會被重複,我需要能夠清除重複。在iOS中刪除Sqlite中的TOP 1

我可以很容易地通過使用下列SQL檢查重複:

SELECT ZOrderGUID, COUNT(*) AS Cnt 
FROM ZPurchaseOrder 
WHERE ZManufacturerID=18 
GROUP BY ZOrderGUID 
HAVING Count(*) > 1 

我需要能夠使用這些結果刪除剛上易受騙的 - 它只是一般爲2的記錄。

我試圖運行該SQL:

SELECT LIMIT 1 * FROM ZPurchaseorder WHERE ZManufacturerID=18 AND ZOrderGUID= 
(SELECT ZOrderGUID 
FROM ZPurchaseOrder 
WHERE ZManufacturerID=18 
GROUP BY ZOrderGUID 
HAVING Count(*) > 1) 

爲了隔離第一欺騙我找到,但在測試中它鎖定了我使用來測試我的SQL腳本的SQLite數據庫瀏覽器應用程序。

回答

0

你可以選擇這樣的第一記錄(LIMIT來在查詢的末尾):

SELECT * 
FROM ZPurchaseorder 
WHERE ZManufacturerID=18 
    AND ZOrderGUID = (SELECT ZOrderGUID 
        FROM ZPurchaseOrder 
        WHERE ZManufacturerID=18 
        GROUP BY ZOrderGUID 
        HAVING Count(*) > 1) 
LIMIT 1