mysql去重保留最后一个_MySQL-去重留一
问题:
去除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-去重留一相关推荐
- python去重保留唯一一个值_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...
摘要 在进行数据分析时,我们经常需要对DataFrame去重,但有时候也会需要只保留重复值. 这里就简单的介绍一下对于DataFrame去重和取重复值的操作. 创建DataFrame 这里首先创建一个 ...
- oracle去重保留一条_mysql、oracle 去重(数据库删除重复数据保留一条)
现在在数据库中有2对重复数据,2条正常数据,我想要把重复数据都删掉 讲一下思路 根据重复字段分组,并增加约束条件,查询出所有的,重复数据的最小id,和重复的属性 SELECT uname,MIN(ui ...
- mysql left join第一个_MySQL 之 LEFT JOIN 避坑指南
现象 left join在我们使用mysql查询的过程中可谓非常常见,比如博客里一篇文章有多少条评论.商城里一个货物有多少评论.一条评论有多少个赞等等.但是由于对join.on.where等关键字的不 ...
- oracle去重保留一条_oracle 去重,取新的一条数据展示
问题:在项目中有一张设备检测信息表DEVICE_INFO_TBL, 每个设备每天都会产生一条检测信息,现在需要从该表中检索出每个设备的最新检测信息.也就是device_id字段不能重复,消除devic ...
- mysql 整数保留2为_MySQL 数字保留两位小数
1.ROUND(x,d) 用于数据的四舍五入,ROUND(x)其实就是ROUND(x,0),也就是默认d为0:这里有个值得注意的地方是,d可以是负数,这时是指定小数点左边的d位整数位为0,同时小数位均 ...
- 后端返回数组对象(id重复)来去重并保留第一个
后端返回数组对象(id重复)来去重并保留第一个1 var arr = [{ id: "0001", name: "张三" },{ id: "0001& ...
- python concat去除重复值语句_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...
摘要 在进行数据分析时,我们经常需要对DataFrame去重,但有时候也会需要只保留重复值. 这里就简单的介绍一下对于DataFrame去重和取重复值的操作. 创建DataFrame 这里首先创建一个 ...
- python duplicated函数_Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值)...
Python DataFrame使用drop_duplicates()函数去重(保留重复值,取重复值) 摘要 在进行数据分析时,我们经常需要对DataFrame去重,但有时候也会需要只保留重复值. 这 ...
- 链表去重 保留第一个元素
#include<iostream> using namespace std;struct Node {int nValue;Node *pNext; };void CreateList( ...
最新文章
- ioc spring 上机案例_IOC(控制反转)—最后的爱,是放手
- 如何查看 JSP 和 Servlet 的版本
- 全世界20座最有创意的桥,7座在中国,5座在荷兰!
- 配置 Syslog 守护程序
- python程序设计基础第三版_Python程序设计(第三版)PPT及源码
- 文档还是程序? Smart Document 技术概述
- [转载] Python字典及基本操作(超级详细)
- selenium课程笔记2--selenium操作chrome浏览器
- 从0开始学习 GitHub 系列之「05.Git 进阶」
- Android JSON 解析库的使用 - Gson 和 fast-json
- 浅谈,盘点历史上有哪些著名的电脑病毒,80%的人都不知道!
- Java编程笔记17:I/O
- 手机连不上wifi,一直显示正在获取ip地址
- qemu内存模型(2) 实现说明
- 关于ImportError: No module named ‘tensorflow‘报错的解决
- Android TextView中 代码字体加粗方法
- 完整版:Idea创建Jsp项目
- 为什么你的工具类APP用户量不少,却难以找到变现模式?
- 腾讯的核心竞争力是什么
- Android 监听手机旋转角度
热门文章
- 汇编语言中将数据、代码、栈放入不同的段
- 不能从农行服务器获取配置文件,#新手入门#请问,农行网银用的好好的突然出现这个就不能用了怎么解决呢?谢谢...
- excel 解析 java_java解析Excel(xls、xlsx两种格式)
- python 字典 的pop 方法
- java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
- 求得到一个字符串@“absdfasdfsdfdsafsd....”所有的排列
- JavaWeb——jsp-config
- Codeforces 338D 对线性同余方程组的一点理解
- js进阶 13-5 jquery队列动画如何实现
- MAP/CAP信令常见消息