2013-08-05 20 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