位置: 编程技术 - 正文

使用distinct在mysql中查询多条不重复记录值的解决办法

编辑:rootadmin
在使用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 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的了解还是太肤浅了,不怕被笑话,发出来让大家别犯同样的错误。。。。。。 by 索尔

推荐整理分享使用distinct在mysql中查询多条不重复记录值的解决办法,希望有所帮助,仅作参考,欢迎阅读内容。

使用distinct在mysql中查询多条不重复记录值的解决办法

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

MySQL性能设置 MySQL性能设置网站访问量越来越大,MySQL自然成为瓶颈,因此最近我一直在研究MySQL的优化,第一步自然想到的是MySQL系统参数的优化,作为一个访问量

从一个MySQL的例子来学习查询语句 自上学这么多年以来,得出了从一个例子入手来学习是最快最有效,并能培养出很强的实践能力,这是一种很好的学习方法。不访试试。比如看一本书

MySQL服务维护笔记第1/2页 内容摘要:使用MySQL服务的一些经验,主要从以下几个方面考虑的MySQL服务规划设计。对于高负载站点来说PHP和MySQL运行在一起(或者说任何应用和数据

标签: 使用distinct在mysql中查询多条不重复记录值的解决办法

本文链接地址:https://www.jiuchutong.com/biancheng/319834.html 转载请保留说明!

上一篇:MySQL 数据库函数库(mysql数据库函数)

下一篇:MySQL性能设置(mysql sql性能调优的方法)

  • 临时工工资列支工资吗
  • 网上代增值税开错不退
  • 收入支出结余公式原理
  • 房地产开发企业预缴增值税
  • 出版产品
  • 机动车丢失后怎么销户
  • 有限合伙企业如何分红
  • 发票已认证还能作废吗2020
  • 技术服务合同增值税税率3%
  • 雇佣临时工发生意外能追房东赔偿吗
  • 去年的暂估成本今年如何冲掉
  • 材料成本差异率要算发出材料吗
  • 坏账损失做哪个科目
  • 单位撤销无力支付怎么办
  • 不动产进项税为什么不能抵扣
  • 月末进项税额结转会计分录
  • 分公司打货款怎么做账
  • 银行存款日期和起息日期不一样
  • win11时间不对
  • 电脑店u盘装系统步骤
  • 房产契税如何计算2021年
  • php去除空格和换行符
  • php单例模式demo
  • 电子发票查询真伪
  • 刚收到的假发怎么处理
  • 退货时会计分录的银行存款能是负数吗
  • Loughrigg Tarn的日出,英国英格兰湖区安布尔塞德 (© John Finney photography/Getty Images)
  • 中文最早出现的时期
  • 原材料按实际成本核算需设置的科目包括
  • yii2入门
  • 海浪冲击着海岸
  • laravel 关联
  • 普通发票被退回怎么处理
  • 基于中国国情的中国式现代化具有哪些特色
  • 好用的5款国产手机推荐
  • 本地存储localstorage没有拿到最新值
  • php技术
  • 税务局规定500元以下收据的要求
  • 开启php
  • 核销发生的坏账损失
  • 高新企业奖励要交企业所得税吗
  • 劳务费发票为什么必须每月开
  • SQL中print、sp_helptext的限制与扩展
  • 融资租赁业务应包括哪些
  • mysql常用命令语句
  • 环保工程会计处理
  • 一般纳税人企业所得税5%还是25%
  • 销售金银首饰增值税和企业所得税
  • 融资租赁的会计处理方法举例子
  • 销项税和进项税的区别
  • 外借资质交企业所得税怎么交
  • 营业外收入的账户核算有哪些
  • 用人单位劳务派遣人员工资怎么做账
  • 垫款报销
  • 差旅费的会计处理
  • 报关金额多报了900美金怎么办
  • 私企会计一般一个月多少钱
  • 房地产企业会计科目
  • Windows Server 2003将于7月14日停服 想用收费
  • windows service 2008 r2
  • win7升级win8.1失败
  • centos ssh升级
  • windows允许访问
  • win10升级后怎么还原
  • 基于bootstrap的毕业设计
  • 关于国内邮政汇兑冻结下列说法正确的有
  • apache2使用
  • dos命令遍历文件
  • jquery实现div左右移动
  • jqueryui draggable
  • unity中滚动条控件详解
  • javascript标签大全
  • jquery 模态窗口
  • 国家税务总局班子简历
  • 如何查询企业税务评级
  • 国家税务局网上电子税务局官网天津
  • 开票内容 大类
  • 增值税发票打印机怎么调整打印位置
  • 税务稽查查哪些
  • 省国税局领导由谁任命
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设