1

我需要从有 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 )

4

2 回答 2

1
DELETE FROM tableName
WHERE col1 NOT IN
(
    SELECT minID
    FROM 
    (
        SELECT MIN(ID) minID
        FROM tableName
        GROUP BY col2, col3
    ) a
)

请参阅 SQLFiddle 演示

于 2012-10-03T10:54:01.390 回答
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 )
于 2012-10-03T11:12:57.307 回答