mysql去重面试总结

前言:题目大概是这样的。

建表:

1、查找表中多余的重复记录,重复记录是根据单个字段(Id)来判断

网上答案:select * from 表 where Id in (select Id from 表 group byId having count(Id) > 1)

mysql:select * from test2 where id in (select id from test2 group by peopleId having count(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(Id)来判断,只留有rowid最小的记录

网上答案:DELETE from 表 WHERE (id) IN ( SELECT id FROM 表 GROUP BY id HAVING COUNT(id) > 1) AND ROWID NOT IN (SELECT MIN(ROWID) FROM 表 GROUP BY id HAVING COUNT(*) > 1);

mysql:

3、查找表中多余的重复记录(多个字段)

select * from 表 a where (a.Id,a.seq) in(select Id,seq from 表 group by Id,seq having count(*) > 1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录

delete from 表 a where (a.Id,a.seq) in (select Id,seq from 表 group by Id,seq having count() > 1) and rowid not in (select min(rowid) from 表 group by Id,seq having count()>1)

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录

select * from 表 a where (a.Id,a.seq) in (select Id,seq from 表 group by Id,seq having count() > 1) and rowid not in (select min(rowid) from 表 group by Id,seq having count()>1)

胜负查询:

总结

1、delete不能有别名

2、mysql不支持又查又改,要用临时表

3、mysql不支持rowid

2018mysql数据库面试题_面试题: mysql 数据库去重 已看1 不好使相关推荐

  1. mysql 获取数据列号_如何获得mysql数据库的所有的列

    命令行下直接用:descrbe 表名 hive也是一样的. 用查询: SELECT  COLUMN_NAME FROM  `information_schema`.`COLUMNS` where  ` ...

  2. Python将JSON格式数据转换为SQL语句以便导入MySQL数据库

    前文中我们把网络爬虫爬取的数据保存为JSON格式,但为了能够更方便地处理数据.我们希望把这些数据导入到MySQL数据库中.phpMyadmin能够把MySQL数据库中的数据导出为JSON格式文件,但却 ...

  3. 数据迁移的几种方式 - MySQL数据库

    写在前面:博主是一只经过实战开发历练后投身培训事业的"小山猪",昵称取自动画片<狮子王>中的"彭彭",总是以乐观.积极的心态对待周边的事物.本人的技 ...

  4. mysql 试题_超经典MySQL练习50题,做完这些你的SQL就过关了

    出品:Python数据之道 作者:Peter 编辑:Lemon 相信大多学习了 Mysql 数据库语言的同学都会上网找练习来练手,而大部分的人肯定知道有一篇 Mysql 经典练习题50题的帖子,上面的 ...

  5. 怎么监控mysql数据变化_实时监控mysql数据库变化

    对于二次开发来说,很大一部分就找找文件和找数据库的变化情况 对于数据库变化.还没有发现比较好用的监控数据库变化监控软件. 今天,我就给大家介绍一个如何使用mysql自带的功能监控数据库变化 1.打开数 ...

  6. mysql 数据库命令大全_常用的MySQL数据库命令大全

    飞信2017V5.6.8860.0 官方正式版 类型:聊天其它大小:69.1M语言:中文 评分:9.6 标签: 立即下载 常用的MySQL命令大全 一.连接MySQL 格式: mysql -h主机地址 ...

  7. mysql删除数据库恢复_详解MySQL数据库恢复误删除数据

    血的教训,事发经过就不详述了.直接上操作步骤及恢复思路(友情提示:数据库的任何操作都要提前做好备份),以下是Mysql数据后的恢复过程: 1. 找到binlog 恢复数据的前提是必须开启Mysql的b ...

  8. mysql怎样循环插入数据_你向 Mysql 数据库插入 100w 条数据用了多久?

    多线程插入(单表) 多线程插入(多表) 预处理SQL 多值插入SQL 事务(N条提交一次) 多线程插入(单表) 问:为何对同一个表的插入多线程会比单线程快?同一时间对一个表的写操作不应该是独占的吗? ...

  9. mysql重新安装后之前表_关于重装mysql数据库之后.新的数据库引入旧数据的表结构和数据问题...

    由于种种问题,也许某一天数据库崩了,或者电脑崩了.重新装Mysql数据库的话:如何导入旧的数据库中的的表结构以及数据呢? 我是在重置电脑之后.进行重装数据库之后.遇到此问题.由于之前未遇到过此种问题. ...

最新文章

  1. 用SQL命令查看Mysql数据库大小
  2. python3 实现 php bin2hex 函数
  3. python3安装第三方模块
  4. java rsa_java中RSA加解密的实现
  5. php cdi_涉及CDI和JSF的过期对话的定制错误页面
  6. 测试驱动开发 测试前移_为什么测试驱动的开发有用?
  7. LeetCode 1256. 加密数字(bitset)
  8. C#非泛型集合类-使用HashTable组织数据
  9. jquery-窗口滚动事件-属性操作
  10. [深度学习-实践]GAN基于手写体Mnist数据集生成新图片
  11. melogin.cn主页登录_melogin.cn登录官网
  12. PyTorch 1.0 中文官方教程:聊天机器人教程
  13. 学习有五个层次和境界
  14. Recover Binary Search Tree -- LeetCode
  15. 在计算机设备中 麦克风属于( ),计算机一级考试基础及MSOffice应用单选真题
  16. Apache 配置ssl证书
  17. 一、Maven-单一架构案例(创建工程,引入依赖,搭建环境:持久化层,)
  18. Eclipse如何设置默认浏览器
  19. App手机应用自建平台 无需编码技术 轻松制作
  20. 人和计算机下棋该应用属于 a,两个人下棋的过程,叫“对局”“对弈”,也叫()A. 手谈B.作战 - 作业在线问答...

热门文章

  1. 【Kafka】Kafka 如果 动态 不停止的情况下 修改 消费组 offset
  2. 【idea】IDEA中TODO以及FIXME等关键字不高亮显示修复
  3. 95-872-064-源码-CEP-CepOperator源码
  4. 【ElasticSearch】Es 源码之 CleanerService 源码解读
  5. 【elasticsearch】 elasticsearch 写一致性
  6. 【Kafka】kafka 0.10.0 版本低级消费 API
  7. Maven私服的配置和使用
  8. flink 1.9 编译:flink.shaded.netty4.io.netty 找不到
  9. mac终端shell颜色
  10. java 设置月份_java – 为什么Calendar.JUNE将月份设置为7月?