`
djun100
  • 浏览: 167614 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

mysql去重的最方便的两种方法

 
阅读更多

参考资料:http://blog.csdn.net/guocuifang655/article/details/3993612

方法一:

在使用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去重才会生效。

分享到:
评论

相关推荐

    mysql去重的两种方法详解及实例代码

    主要介绍了mysql去重的两种方法详解及实例代码的相关资料,这里对去重的两种方法进行了一一实例详解,需要的朋友可以参考下

    MySQL 去除重复数据实例详解

    对于第一种重复,比较容易解决,只需在查询语句中使用distinct关键字去重,几乎所有数据库系统都支持distinct操作。发生这种重复的原因主要是表设计不周,通过给表增加主键或唯一索引列即可避免。 select distinct ...

    MySQLDBA运维笔记.pdf

    1.2.6 创建存放两个 mysql 实例的数据目录...............................................................11 1.2.7 创建两个 mysql 多实例的配置文件.............................................................

    使用SQL语句去掉重复的记录【两种方法】

    如果要删除手机(mobilePhone),电话(officePhone),邮件(email)同时都相同的数据,以前一直使用这条语句进行去重: delete from 表 where id not in (select max(id) from 表 group by mobilePhone,officePhone,...

    基于Python的医疗知识图谱问答系统.zip

    基于Python的医疗知识图谱问答系统 python;django;mysql;...(4)可视化展示:通过可视化模块将问答模块返回的答案进行可视化展示,包括文本和图形展示两种方式,提供更加直观和友好的用户体验。

    阿里云ons使用

     5)MySQL BinLog订阅数据分发 2、ONS应用场景  异步、解耦、最终一致、并行 3、设计假定  1)每台PC机器都可能down机不可服务  2)任意集群都可能处理能力不足  3)最坏情况一定会发生  4)内网环境需要低...

    python入门到高级全栈工程师培训 第3期 附课件代码

    03 文件归档与两种压缩方式 04 vim编辑器 05 系统启动流程 06 grub加密 07 bios加密 08 top命令 09 free命令 10 进程管理 第6章 01 上节课复习 02 磁盘分区 03 文件系统与挂载 04 挂载信息讲解 05 磁盘用满的两种...

    UCenter Home 2.0 简体中文UTF8.zip

    游客首页支持开放式和封闭式两种模式,并在开放模式下,与随便看看有机统一; 同时,站长可以对日志、图片、话题、活动、投票等显示条件、排序、缓存等各项属性进行调控。 个人资料和个人主页 全面增强的个人资料...

    UCenter Home 2.0 简体中文GBK.zip

    游客首页支持开放式和封闭式两种模式,并在开放模式下,与随便看看有机统一; 同时,站长可以对日志、图片、话题、活动、投票等显示条件、排序、缓存等各项属性进行调控。 个人资料和个人主页 全面增强的个人资料...

    UCenter Home 2.0 繁体中文UTF8.zip

    游客首页支持开放式和封闭式两种模式,并在开放模式下,与随便看看有机统一; 同时,站长可以对日志、图片、话题、活动、投票等显示条件、排序、缓存等各项属性进行调控。 个人资料和个人主页 全面增强的个人资料...

    多线程、高性能采集器爬虫.net版源码,可采ajax页面

    6)所采数据可自动保存为文本文件、excel文件,也可自动存储到数据库,数据库支持Access、MSSqlServer、MySql,同时在数据存储过程中还可自动去重重复行,避免数据重复; 7)所采数据也可自动发布到网站,通过...

    java8源码-JavaInterview-5:java中高级面试指南

    海量数据如何去重? () () () 算法 () ( () () () 常见数据结构 () () () () () () () () () () () () () () () () () () java基础相关 hashcode相等两个类一定相等吗? equals 呢 相反呢? () 线程池用过么?都有...

    Python入门网络爬虫之精华版

    我们可以选择存入文本文件,也可以选择存入MySQL或MongoDB数据库等。 存储有两个需要注意的问题: 如何进行网页去重? 内容以什么形式存储? Scrapy Scrapy是一个基于Twisted的开源的Python爬虫框架,在工业中...

    UCenter Home 2.0 繁体中文BIG5

    游客首页支持开放式和封闭式两种模式,并在开放模式下,与随便看看有机统一; 同时,站长可以对日志、图片、话题、活动、投票等显示条件、排序、缓存等各项属性进行调控。 个人资料和个人主页 全面增强的个人资料...

    SQL培训第一期

    union 会对查询数据进行去重并排序,union all只是简单的将两个结果合并。 1.8.8 wm_concat 1.8.8.1 语法 select wm_concat(t.role_name) from g_role t where t.role_name like '%书记%' 1.8.8.2 说明 拼接字符串,...

Global site tag (gtag.js) - Google Analytics