根据可变列数删除具有重复值的行
Removing rows with duplicate values based on variable number of columns
考虑以下 table
第 1 列 |专栏2 |专栏3 | column4
一个 |乙 | 1 | 2
一个 |乙 | 2 | 3
一个 | c | 2 | 4
我想删除基于 cloumn1 和 column2 的重复项,并只保留一个这样的实例。因此上面的 table 应该看起来像
一个 |乙 | 1 | 2
一个 | c | 2 | 4
我试过像这样添加唯一索引
ALTER IGNORE TABLE `my_table`
ADD UNIQUE INDEX `index1` (`column1` ASC, `column2` ASC);
这应该可以完美地工作,但是
As of MySQL 5.7.4, the IGNORE clause for ALTER TABLE is removed and its use produces an error.
那么这个场景的替代方案是什么?
注意:这不是重复的问题。在问这个之前我已经搜索过了。请在标记为重复之前再次阅读
您可以删除重复的行
delete my_table
where id not in (select t.id from (
select min(id) as id from my_table
group by column1, column2 ) as t )
考虑以下 table
第 1 列 |专栏2 |专栏3 | column4
一个 |乙 | 1 | 2
一个 |乙 | 2 | 3
一个 | c | 2 | 4
我想删除基于 cloumn1 和 column2 的重复项,并只保留一个这样的实例。因此上面的 table 应该看起来像
一个 |乙 | 1 | 2
一个 | c | 2 | 4
我试过像这样添加唯一索引
ALTER IGNORE TABLE `my_table`
ADD UNIQUE INDEX `index1` (`column1` ASC, `column2` ASC);
这应该可以完美地工作,但是
As of MySQL 5.7.4, the IGNORE clause for ALTER TABLE is removed and its use produces an error.
那么这个场景的替代方案是什么?
注意:这不是重复的问题。在问这个之前我已经搜索过了。请在标记为重复之前再次阅读
您可以删除重复的行
delete my_table
where id not in (select t.id from (
select min(id) as id from my_table
group by column1, column2 ) as t )