mysql查询语句我们都经常在用,今天维护数据库出现以下需求,mysql查询语句查出user表中不重复的记录,使用distinct但他只能对一个字段有效,我试了好多次不行,怎么办呢?
10年的涉县网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都营销网站建设的优势是能够根据用户设备显示端的尺寸不同,自动调整涉县建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“涉县网站设计”,“涉县网站推广”以来,每个客户项目都认真落实执行。
原因就是 distinct它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。
也就是distinct只能返回它的目标字段,而无法返回其它字段
例如:
- SELECT DISTINCT mac,ip from ip
- +------+------+
- | mac | ip |
- +------+------+
- | abc | 678 |
- | abc | 123 |
- | def | 456 |
- | abc | 12 |
- +------+------+
他还是不会有变换!因为上面的语句产生的作用就是作用了两个字段,也就是必须得mac与ip都相同的才会被排除
***没有办法,使用group by 看看!!!!
查看mysql 手册!connt(distinct name) 可以配合group by 实现。
一个count函数实现我要的功能。
- select *,count(distinct mac) from ip group by mac;
- +------+------+---------------------+
- | mac | ip | count(distinct mac) |
- +------+------+---------------------+
- | abc | 678 | 1 |
- | def | 456 | 1 |
- +------+------+---------------------+
基本实现我的想法!
那如何实现一个表有两个字段mac和ip,如何找出所有的mac相同而ip不同的记录?
- mysql> select * from ip;
- +-----+-----+
- | mac | ip |
- +-----+-----+
- | abc | 123 |
- | def | 456 |
- | ghi | 245 |
- | abc | 678 |
- | def | 864 |
- | abc | 123 |
- | ghi | 245 |
- +-----+-----+
- 7 rows in set (0.00 sec)
- mysql> SELECT DISTINCT a.mac, a.ip
- -> FROM ip a, ip b
- -> WHERE a.mac = b.mac AND a.ip <> b.ip ORDER BY a.mac;
- +-----+-----+
- | mac | ip |
- +-----+-----+
- | abc | 678 |
- | abc | 123 |
- | def | 864 |
- | def | 456 |
- +-----+-----+
- 4 rows in set (0.00 sec)
【编辑推荐】
教您如何实现MySQL全文查询
MySQL查询分页的优化
MySQL查询结果按某值排序
使用函数实现MySQL查询行号
MySQL查询中的非空问题
网站题目:mysql查询语句中distinct的问题
文章分享:http://www.shufengxianlan.com/qtweb/news35/72585.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联