mysql去重

方法一:

在使用MySQL时,有时需要查询出某个字段不重复的记录,虽然mysql提供 有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是 distinct只能返回它的目标字段,而无法返回其它字段

下面先来看看例子:

table

id name

1 a

2 b

3 c

4 c

5 b

库结构大概这样,这只是一个简单的例子,实际情况会复杂得多。

比如我想用一条语句查询得到name不重复的所有数据,那就必须使用distinct去掉多余的重复记录。

select distinct name from table

得到的结果是:

name

a

b

c

好像达到效果了,可是,我想要得到的是id值呢?改一下查询语句吧:

select distinct name, id from table

结果会是:

id name

1 a

2 b

3 c

4 c

5 b

distinct怎么没起作用?作用是起了的,不过他同时作用了两个字段,也就是必须得id与name都相同的才会被除。。。。。。。

我们再改改查询语句:

select id, distinct name from table

很遗憾,除了错误信息你什么也得不到,distinct必须放在开头。难到不能把distinct放到where条件里?能报错。。。。。。。

最终好用的语句如下:

select *, count(distinct name) from table group by name

结果:

id name count(distinct name)

1 a 1

2 b 1

3 c 1

最后一项是多余的,不用管就行了,目的达到。。。。。

哦,对,再顺便说一句,group by 必须放在 order by 和 limit之前,不然会报错。。。。。。。。!OK了

总结语句:select *, count(distinct name) from (select * from table……等嵌套语句) group by name

方法二:

利用group by

SELECT * FROM(

select * from customer where user=(

SELECT source_user from customer WHERE user='admin') UNION ALL select * from customer where user=(

select source_user from customer where user=(

SELECT source_user from customer WHERE user='admin')) union ALL select * from customer where user=(

select source_user from customer where user=(

select source_user from customer where user=(

SELECT source_user from customer WHERE user='admin'))) UNION ALL select * from customer where source_user=(/*我的上线的上线的user*/

select user from customer where user=(

select source_user from customer where user=(

SELECT source_user from customer WHERE user='admin'))) union all select * from customer where source_user=(/*我的上线的上线的上线user*/

select user from customer where user=(

select source_user from customer where user=(

select source_user from customer where user=(

SELECT source_user from customer WHERE user='admin'))))) as alias group by user;

注意加别名,不然报错,注意在where语句外面包装一下,再用group by去重才会生效。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2017-01-09

mysql命令去重_mysql去重的两种方法详解及实例代码相关推荐

  1. java构造和解析json_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  2. java json解析 代码_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  3. Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  4. java构建json_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  5. 站长在线Python精讲:在Python中格式化字符串的两种方法详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中格式化字符串的两种方法详解>.本知识点主要内容有:使用%操作符格式化字符串和使用format()方法格式化字 ...

  6. oracle如何对数据库进行备份,对Oracle数据库进行备份的两种方法详解

    首页 > 演讲稿 > 自我介绍演讲稿 > 对Oracle数据库进行备份的两种方法详解 对Oracle数据库进行备份的两种方法详解 时间:2019-05-05   来源:自我介绍演讲稿 ...

  7. Redis中持久化的两种方法详解

    Redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照(snapshotting),它可以将存在于某一时刻的所有数据都写入硬盘里;另一种方法教只追加文件(append-only f ...

  8. mysql master 配置_MySQL双Master配置的方法详解

    刚刚抽空做了一下MYSQL 的主主同步.把步骤写下来,至于会出现的什么问题,以后随时更新.这里我同步的数据库是TEST1.环境描述.主机:192.168.0.231(A)主机:192.168.0.23 ...

  9. php 带建数组转字符串,php数组转换为字符串的两种方法详解【附视频】

    本篇文章主要给大家介绍PHP数组转换为字符串的两种方法.(文章末尾附有对应的视频教程) 第一种方法:使用PHP本身的函数implode来直接将数组转换为字符串. 第二种方法:使用循环遍历数组元素拼接成 ...

最新文章

  1. Cocos 实用渲染实战(一):高性价比的人物皮肤渲染
  2. linux rm命令详解
  3. SSH HTTPS 公钥、秘钥、对称加密、非对称加密、 总结理解
  4. java的多线程机制(文字描述区别)
  5. java开源springboot项目_使用Spring Boot的10多个免费开源项目
  6. 开发者如何谈判才能获得更高的薪水?
  7. i.mx6ull uboot移植
  8. 软件测试中的白盒测试的工具,软件测试人员该如何选择白盒测试工具?常用的白盒测试工具汇总...
  9. word生成目录和给目录添加虚线和页码
  10. 阿里p6和p7的主要区别是什么?
  11. PDF文件怎么拆分页面
  12. 随手练——小米OJ 高弗雷勋爵
  13. python爬虫之获取谷歌浏览器所有cookie
  14. VGA和HDMI传输距离是否有要求?
  15. Excel 2010 VBA 入门 028 向单元格输入公式
  16. 鼠标点桌面计算机图标闪,用鼠标点击桌面图标老闪动是怎么回事?
  17. [HCTF 2018] WarmUp
  18. android material design主题在线配色
  19. 大数据面试题_Hive篇
  20. Linux命令之复制文件或目录cp

热门文章

  1. 走进大数据丨 数据仓库和数据库的区别
  2. 连接服务器显示英文,cf游戏服务器显示英文
  3. kettle 使用java脚本连接获取数据库中的值
  4. 《仙剑奇侠传》经典台词的英文翻译
  5. 路由器EMC检测办理需要哪些资料
  6. 2017年计算机一级b试题及答案,2017年全国计算机一级试题及答案「精品」
  7. 系统重构:从Jar包冲突搞到类加载机制,就是这么霸气
  8. 小米手机解决此区域不可截屏
  9. Unity Shader 入门精要——反射、折射
  10. FTDI FT232H:强大的硬件接口工具