在使用mysql时,有时需要查询出某个字段不重复的记录,虽然mysql提供有distinct这个关键字来过滤掉多余的重复记录只保留一条,但往往只用它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。其原因是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条件里?能,照样报错。。。。。。。

很麻烦吧?确实,费尽心思都没能解决这个问题。没办法,继续找人问。

拉住公司里一JAVA程序员,他给我演示了oracle里使用distinct之后,也没找到mysql里的解决方案,最后下班之前他建议我试试group by。

试了半天,也不行,最后在mysql手册里找到一个用法,用group_concat(distinct name)配合group by name实现了我所需要的功能,兴奋,天佑我也,赶快试试。

报错。。。。。。。。。。。。郁闷。。。。。。。连mysql手册也跟我过不去,先给了我希望,然后又把我推向失望,好狠哪。。。。

再仔细一查,group_concat函数是4.1支持,晕,我4.0的。没办法,升级,升完级一试,成功。。。。。。

终于搞定了,不过这样一来,又必须要求客户也升级了。

突然灵机一闪,既然可以使用group_concat函数,那其它函数能行吗?

赶紧用count函数一试,成功,我。。。。。。。想哭啊,费了这么多工夫。。。。。。。。原来就这么简单。。。。。。

现在将完整语句放出:

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

结果:

id name count(distinct name)
  1 a 1
  2 b 1
  3 c 1

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

唉,原来mysql这么笨,轻轻一下就把他骗过去了,郁闷也就我吧(对了,还有容容那家伙),现在拿出来希望大家不要被这问题折腾。

哦,对,再顺便说一句,group by 必须放在 order by 和 limit之前,不然会报错,差不多了,发给容容放网站上去,我继续忙碌。。。。。。

-----------------------------------------------------------------------------------------

更郁闷的事情发生了,在准备提交时容容发现,有更简单的解决方法。。。。。。

select id, name from table group by name

看来对mysql的了解还是太肤浅了,不怕被笑话,发出来让大家别犯同样的错误。。。。。。

FROM:http://blog.csdn.net/missyouzhang/article/details/5798458

select busstopName, count(distinct busstopName) from line_busstop group by busstopName

转载于:https://www.cnblogs.com/YananZ/p/3844278.html

MySQL去除查询结果重复值相关推荐

  1. mysql 查询不重复的值_在 MySQL 中查询不重复记录值的方法

    使用 WordPress 的过程中,我一直很好奇 WordPress 的一个功能,大家都知道在 WordPress 的编写文章的时候,可以自定义栏目,而这个自定义栏目的数据保存到 wp_postmet ...

  2. Remove Duplicates from Sorted List 去除链表中重复值节点

    Given a sorted linked list, delete all duplicates such that each element appear only once. For examp ...

  3. mysql搜索结果去重_MySQL去除查询结果重复

    出现结果重复数SQL(四表关联): SELECT COUNT(post.ID ) FROM wp_posts AS post LEFT JOIN wp_term_relationships AS re ...

  4. mysql中筛选不重复值_MYSQL中筛选不重复记录值的示例

    我的wordpress数据库中的wp_postmeta表都有10,000多行了,如果使用两次循环查找判断,虽然我们不累,但是程序运行很累啊. 如果我想用一条语句查询得到name不重复的所有数据,那就必 ...

  5. mysql三表查询数据重复_解决mybatis三表连接查询数据重复的问题

    此问题的产生,主要是数据库的字段名一样导致 三张表 DOCTOR JOB OBJECT 有问题的查询语句和查询结果是: SELECT d.*,j.*,o.* from (select d.*,rown ...

  6. mysql联合查询数据重复_多表联合查询导致的数据重复问题

    select id,like_count,favorite_count from message_message where id in(select message_id from message_ ...

  7. js去除数组中重复值

    //第三种方法加强版 Array.prototype.distinct=function(){ var sameObj=function(a,b){ var tag = true; if(!a||!b ...

  8. php 去除重复的值,php数组怎么去除重复值?

    PHP中可以使用array_unique()函数来去除数组的重复值:如果两个或更多个数组值相同,array_unique()函数只会保留第一个元素,其他的元素值会被删除:语法格式"array ...

  9. mysql去重查询只留一条最新的

    mysql查询到时候如何去重(指定两个条件一样的数据) 可以使用groupby以dname分组 select*fromtablegroupbydname 这样不行,,因为我还有dname一样,,但是s ...

最新文章

  1. MyEclipse结合Git
  2. 还在使用 SimpleDateFormat?你的项目崩没?
  3. Web应用虚拟目录的映射的几种方式
  4. 写给MongoDB开发者的50条建议Tip6
  5. Kubernetes 网络概念及策略控制(叶磊)
  6. 什么是计算机领域的实时系统
  7. java无限循环可变参数,Java可变参数、加强for循环
  8. 我学Flash/Flex(2):AS3读取XML文件内容
  9. python 全部缩进一行_每天三分钟一起学python之(三)python的基本语法
  10. 通用mrp手机必备新手安装包
  11. 《人机交互技术》 第八章 移动界面设计
  12. 创造力对领导力的重要性_创造力是冒险的(领导者需要听到的其他真相)
  13. 10年日语营业转行IT从深圳到日本东京圈工作生活2019copy
  14. spring概念理解之IOC(控制反转)
  15. nginx反向代理文件下载失败
  16. oracle 正序 倒序 排列
  17. 魔兽重置版改键+喊话
  18. TCP3次握手为啥挥手却要4次,这下解释明白了
  19. Pytorch中transforms.Compose()的使用
  20. 2021江苏省南通市高考成绩查询时间,2021年江苏南通高考时间:6月7日至9日

热门文章

  1. Recovery 流程简介
  2. [BZOJ 2659] [Beijing wc2012] 算不出的算式
  3. Swift语言高速入门
  4. windows.open()参数列表
  5. Zend Studio 实用快捷键一览表
  6. python 报ImportError: Install xlrd = 1.0.0 for Excel support错误出现及其解决帮法
  7. Notepad++快速选中多行
  8. Docker基本命令入门
  9. kafka常见疑难问题
  10. hbuilderx制作简单网页_简单的手机网页制作教程