文章时间:2020年3月8日 19:27:36 解决问题:删除表中的重复数据 基于数据库:Mysql 5.7 version
SELECT openid,COUNT(openid)
FROM 表名
GROUP BY openid
HAVING COUNT(openid) > 1
Select * From 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
上面提供两种写法,直接复制粘贴替换相应的字段即可。
DELETE
FROM
表名
WHERE
dname IN (
SELECT
t.字段名
FROM
( select 字段名
FROM 表名
GROUP BY
字段名
HAVING
count(1) > 1
) t
)
DELETE
FROM
表名
WHERE
这里写你的表id NOT IN (
SELECT
t.minno
FROM
(
SELECT
MIN(id) AS minno
FROM
表名
GROUP BY
字段名
) t
)
[Err] 1093 - You can't specify target table 'dept' for update in FROM clause
原因:更新这个表的同时又查询了这个表,查询这个表的同时又去更新了这个表,可以理解为死锁。mysql不支持这种更新查询同一张表的操作。所以我们用生成临时表去操作,上面的语句就是这么写的。复制即可。
https://blog.csdn.net/n950814abc/article/details/82284838
https://blog.csdn.net/ljy520yzy/article/details/8631264
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有