Mysql 基于非重复字段从表中删除重复项
我需要删除一些基于非重复字段的重复数据 样本数据:Mysql 基于非重复字段从表中删除重复项,mysql,Mysql,我需要删除一些基于非重复字段的重复数据 样本数据: |status|Size|id# |income|scan_date | | 0 | 3 |123456| 1000 |2015-10-16| | 1 | 3 |123456| 1000 |2015-10-16| | 1 | 4 |112345| 900 |2015-09-05| | 0 | 7 |122345| 700 |2015-10-01| 当id和扫描日期相同时,我只需要删除状态为0的行 del
|status|Size|id# |income|scan_date |
| 0 | 3 |123456| 1000 |2015-10-16|
| 1 | 3 |123456| 1000 |2015-10-16|
| 1 | 4 |112345| 900 |2015-09-05|
| 0 | 7 |122345| 700 |2015-10-01|
当id和扫描日期相同时,我只需要删除状态为0的行
delete from table
where status=0
and (id, scan_date) in
(select id, scan_date from
(select id, scan_date from table
group by id, scan_date
having count(*) >=2) t1)
在mysql中需要额外的子查询,因为mysql不允许从更新或删除的表中进行选择
更新:见我创建的。我认为您删除了带有t1别名的子查询,尽管我明确警告过您这很重要 当我尝试用实际的表名替换“table”时,出现以下错误:无法指定目标表“stdnt_data_copy”以便从子句中进行更新。是否使用t1别名包含附加子查询?我确实使用t1别名包含子查询。我在这里查看了服务器上运行的mysql版本,它实际上非常旧,4.1.22。这可能是问题的一部分吗?