我的表listed_users
有两个TEXT列,code
和username
:
code | username
-----|---------
aa | john_doe
ab | jane_doe
ca | john_doe
ca | john_doe <-- duplicate
da | ryan_doe
我想编写一个删除重复项的命令,例如ca | john_doe
,其中相同的信息出现在多行的两列中。
答案 0 :(得分:3)
要删除一对重复行中的一行,您必须具有一些识别它的机制。在SQLite中,这将是rowid。
以下查询返回您要保留的所有行的rowid
值,即每个唯一代码/名称组合的一行:
SELECT min(rowid)
FROM listed_users
GROUP BY code, username;
您要删除不在该列表中的所有行:
DELETE FROM listed_users
WHERE rowid NOT IN (SELECT min(rowid)
FROM listed_users
GROUP BY code, username);