我需要从表中删除共有2列或更多列的行。对于前者假设我需要删除最后2列相同的行。
1 1 2 3
2 2 2 2
3 2 3 3
4 7 3 3
5 4 2 2
第一列是索引。
我需要删除4 7 3 3和5 4 2 2(因为已经有2 2 2 2和3 2 3 3)
答案 0 :(得分:1)
DELETE FROM tableName
WHERE col1 NOT IN
(
SELECT minID
FROM
(
SELECT MIN(ID) minID
FROM tableName
GROUP BY col2, col3
) a
)
答案 1 :(得分:0)
经过一番研究后我发现了这个(我觉得它在堆栈上的某个地方也不记得帖子了)
SELECT * FROM tb AS t1
WHERE EXISTS (
SELECT 1 FROM tb AS t2
WHERE t2.c0= t1.c0
AND t2.c1= t1.c1
AND t2.c2= t1.c2
AND t2.id> t1.id )