SQL删除除1

时间:2019-03-14 09:11:01

标签: mysql sql

首先,我不得不说我已经解决了很多问题,但是我找不到正确的答案。我看到有人问同样的问题。那里的主要问题是这样的:

DELETE FROM MyTable
LEFT OUTER JOIN (
    SELECT MIN(RowId) as RowId, Col1, Col2, Col3 
FROM MyTable 
    GROUP BY Col1, Col2, Col3
) 
as KeepRows ON
MyTable.RowId = KeepRows.RowId
    WHERE
KeepRows.RowId IS NULL

问题是,您选择一个最小或最大ID,并且上面或下面的所有重复值都将被删除。

现在我有一个约有5万行的数据库。有几百个重复的行。还有其他删除重复行的方法吗?除了1。

最后,我想从数据库中删除所有重复的行。一手一一不是一个选择,因为我们可能正在谈论一千行。我需要一个SQL查询(如果可能的话)来选择所有重复项。并删除除1之外的所有重复项。(重复项可以与行的描述相同。但是,行的相同名称也可以视为重复项)

此语句确实从我的数据库中选择了所有双打。现在,我需要像这样的东西来删除那些行。

SELECT
a.id, a.word, a.description,
b.id, b.word, b.description 
FROM wordslist AS a
INNER JOIN wordslist AS b ON a.word = b.word
AND a.id != b.id;

0 个答案:

没有答案