问题:

去除MySQL中重复的记录,仅保留其中一条。本例中cname为重复项,而cid为primary key。

尝试解决:

使用代码:

DELETE FROMt_customerWHERE cname in(SELECT cname FROM t_customer GROUP BY cname HAVING count(cname)>1)AND cid NOT IN(SELECT min(cid) cid FROM t_customer GROUP BY cname HAVING count(cname)>1)

代码思路:

设置2个条件,1是查出cname相同的记录里的cname值,2是查出cname相同的记录里cid最小的一项记录的cid值,然后据此进行删除cname重复的记录,保留其中cid最小的记录。

运行以后发现:

报错:[HY000][1093] You can't specify target table 't_customer' for update in FROM clause

报错原因:(找了几篇博客看来的)大意是:不能在同一条语句中对某个字段进行判断的同时,又对其进行update操作。有博主还提到“这个问题只出现于MySQL,MSSQL和Oracle不会出现此问题”(未验证过,在此只是提一句)

最后解决:

1种代码:

DELETE FROM t_customer

WHERE cname in

(

SELECT cname FROM

(

SELECT cname FROM t_customer GROUP BY cname HAVING count(cname)>1

) t1

)

AND cid NOT IN

(

SELECT cid FROM

(

SELECT min(cid) cid FROM t_customer GROUP BY cname HAVING count(cname)>1

) t2

)

思路:

将之前的2个查询结果先暂存为t1和t2,然后从这2个临时集合中查询出cname和cid作为删除条件

第2中代码:

看其他的博客看到的:

DELETE t_customer

FROM

t_customer,

(

SELECT min(cid) cid, cname

FROM t_customer

GROUP BY cname

HAVING count(cname)>1

)t

WHERE t_customer.cname=t.cname

AND t_customer.cid>t.cid;

运行以后也得到了想要的结果。

mysql去重保留最后一个_MySQL-去重留一相关推荐

  1. python去重保留唯一一个值_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...

    摘要 在进行数据分析时,我们经常需要对DataFrame去重,但有时候也会需要只保留重复值. 这里就简单的介绍一下对于DataFrame去重和取重复值的操作. 创建DataFrame 这里首先创建一个 ...

  2. oracle去重保留一条_mysql、oracle 去重(数据库删除重复数据保留一条)

    现在在数据库中有2对重复数据,2条正常数据,我想要把重复数据都删掉 讲一下思路 根据重复字段分组,并增加约束条件,查询出所有的,重复数据的最小id,和重复的属性 SELECT uname,MIN(ui ...

  3. mysql left join第一个_MySQL 之 LEFT JOIN 避坑指南

    现象 left join在我们使用mysql查询的过程中可谓非常常见,比如博客里一篇文章有多少条评论.商城里一个货物有多少评论.一条评论有多少个赞等等.但是由于对join.on.where等关键字的不 ...

  4. oracle去重保留一条_oracle 去重,取新的一条数据展示

    问题:在项目中有一张设备检测信息表DEVICE_INFO_TBL, 每个设备每天都会产生一条检测信息,现在需要从该表中检索出每个设备的最新检测信息.也就是device_id字段不能重复,消除devic ...

  5. mysql 整数保留2为_MySQL 数字保留两位小数

    1.ROUND(x,d) 用于数据的四舍五入,ROUND(x)其实就是ROUND(x,0),也就是默认d为0:这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均 ...

  6. 后端返回数组对象(id重复)来去重并保留第一个

    后端返回数组对象(id重复)来去重并保留第一个1 var arr = [{ id: "0001", name: "张三" },{ id: "0001& ...

  7. python concat去除重复值语句_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...

    摘要 在进行数据分析时,我们经常需要对DataFrame去重,但有时候也会需要只保留重复值. 这里就简单的介绍一下对于DataFrame去重和取重复值的操作. 创建DataFrame 这里首先创建一个 ...

  8. python duplicated函数_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...

    Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值) 摘要 在进行数据分析时,我们经常需要对DataFrame去重,但有时候也会需要只保留重复值. 这 ...

  9. 链表去重 保留第一个元素

    #include<iostream> using namespace std;struct Node {int nValue;Node *pNext; };void CreateList( ...

最新文章

  1. ioc spring 上机案例_IOC(控制反转)—最后的爱,是放手
  2. 如何查看 JSP 和 Servlet 的版本
  3. 全世界20座最有创意的桥,7座在中国,5座在荷兰!
  4. 配置 Syslog 守护程序
  5. python程序设计基础第三版_Python程序设计(第三版)PPT及源码
  6. 文档还是程序? Smart Document 技术概述
  7. [转载] Python字典及基本操作(超级详细)
  8. selenium课程笔记2--selenium操作chrome浏览器
  9. 从0开始学习 GitHub 系列之「05.Git 进阶」
  10. Android JSON 解析库的使用 - Gson 和 fast-json
  11. 浅谈,盘点历史上有哪些著名的电脑病毒,80%的人都不知道!
  12. Java编程笔记17:I/O
  13. 手机连不上wifi,一直显示正在获取ip地址
  14. qemu内存模型(2) 实现说明
  15. 关于ImportError: No module named ‘tensorflow‘报错的解决
  16. Android TextView中 代码字体加粗方法
  17. 完整版:Idea创建Jsp项目
  18. 为什么你的工具类APP用户量不少,却难以找到变现模式?
  19. 腾讯的核心竞争力是什么
  20. Android 监听手机旋转角度

热门文章

  1. 汇编语言中将数据、代码、栈放入不同的段
  2. 不能从农行服务器获取配置文件,#新手入门#请问,农行网银用的好好的突然出现这个就不能用了怎么解决呢?谢谢...
  3. excel 解析 java_java解析Excel(xls、xlsx两种格式)
  4. python 字典 的pop 方法
  5. java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
  6. 求得到一个字符串@“absdfasdfsdfdsafsd....”所有的排列
  7. JavaWeb——jsp-config
  8. Codeforces 338D 对线性同余方程组的一点理解
  9. js进阶 13-5 jquery队列动画如何实现
  10. MAP/CAP信令常见消息