mysql中常用去重复数据的方法是使用 distinct  或者group by ,以上2种均能实现,但2者也有不同的地方。

distinct 特点:

如:select  distinct   name, sex,from tb_students  这个sql的语法中,查询 tb_students  表中 name, sex,并去除名字和性别都重复的学生:

  1、distinct 只能放在查询字段的最前面,不能放在查询字段的中间或者后面。

备注:select   sex,distinct   name from tb_students  这种写法是错误的,distinct   只能写在所有查询字段的前面

  2、distinct 对后面所有的字段均起作用,即 去重是查询的所有字段完全重复的数据,而不是只对 distinct   后面连接的单个字段重复的数据。

备注:也就是 distinct   关键字对 name, sex 都起作用,去重姓名、性别完全一样的学生,如果姓名相同、性别不同是不会去重的。

  3、要查询多个字段,但只针对一个字段去重,使用distinct去重的话是无法实现的。

group by 特点:

  1、一般与聚类函数使用(如count()/sum()等),也可单独使用。

  2、group by 也对后面所有的字段均起作用,即 去重是查询的所有字段完全重复的数据,而不是只对 group by后面连接的单个字段重复的数据。

  3、查询的字段与group by 后面分组的字段没有限制。

特别说明:在oracle中使用group by时,查询的字段必须是group by 分组的字段和聚类函数。如select name,sex from tb_students group by name这个sql

    语法在oracle中是错误的,因为sex 不在group by 分组后面;但在mysql中是支持的。

最新文章

  1. 上传文件swfUploadConfig.js
  2. Laravel学习笔记(四)数据库 数据库迁移案例
  3. java jstack命令详解
  4. Java Code Examples for PhantomJSDriverService
  5. 配置Windows 2008 R2 64位 Odoo 8.0 源码PyCharm开发调试环境
  6. 关于在mac 配置eclipse c开发
  7. 重新安装sqlyog时备份数据库链接列表的方法
  8. Unix/Linux 关机命令
  9. 自由的Debian
  10. java中的equals()方法
  11. elasticsearch 索引优化
  12. ContentResolver,ContentProvider,ContentObserver使用记录
  13. 线性一致性与全序广播------《Designing Data-Intensive Applications》读书笔记12
  14. PHP artisan migrate 报错显示 could not find driver ,怎么办?
  15. 【Java】利用注解和反射实现一个"低配版"的依赖注入
  16. JMeter实现唯一参数生成不重复时间戳
  17. vue 上拉加载自定义组件,超好用哦
  18. linux 如何释放缓存
  19. Cacti日志时区问题
  20. rbac 权限分配, 基于formset实现,批量增加

热门文章

  1. C# Winform 带水印提示输入框
  2. 从n个数里面找最大的两个数理论最少需要比较
  3. VSCode远程连接Docker
  4. (十)zabbix监控TCP状态
  5. (八)zabbix获取到的数值自定义单位
  6. FutureWarning: get_value is deprecated and will be removed in a future release. Please use .at[] or .iat[] accessors instead print(labels_df.get_value(patients,col=1))
  7. App支付宝登录授权
  8. commons-codec-1.9.jar 是做什么用的?
  9. Canvas实用库Fabric.js使用手册
  10. C# 计算小数