可能重复:
如何从 mysql 中的表中删除重复的行
我有一个简单的要求,这正在成为一场噩梦。
我有一个表 'MyTableA' 有两列 ID(int) 和 Value(varchar(100))
该表有一些值,如下所示:
ID|值 1|苹果 2|苹果 3|苹果
无论 Value 是重复的,我都想保留第一个 ID 行并删除其余的行。所以在上面的例子中,我想删除 ID 为 2 和 3 的行。
我认为这很简单,但这可能是因为我正在使用带有子句的 SQL。
谢谢!
可能重复:
如何从 mysql 中的表中删除重复的行
我有一个简单的要求,这正在成为一场噩梦。
我有一个表 'MyTableA' 有两列 ID(int) 和 Value(varchar(100))
该表有一些值,如下所示:
ID|值 1|苹果 2|苹果 3|苹果
无论 Value 是重复的,我都想保留第一个 ID 行并删除其余的行。所以在上面的例子中,我想删除 ID 为 2 和 3 的行。
我认为这很简单,但这可能是因为我正在使用带有子句的 SQL。
谢谢!
尝试...
DELETE t FROM `dbtable` t
JOIN `dbtable` t2 ON t.`Value` = t2.`Value`
WHERE t.`ID` > t2.`ID`
您可以通过使用子查询加入表来删除它(子查询获取每个值的最小 ID)
DELETE a FROM tableName a
LEFT JOIN
(
SELECT Value, MIN(ID) minID
FROM tableName
GROUP BY Value
) b ON a.ID = b.minID
WHERE b.minID IS NULL