2022-10-27 429
mysql查询语句我们都经常在用,今天维护数据库出现以下需求,mysql查询语句查出user表中不重复的记录,使用distinct但他只能对一个字段有效,我试了好多次不行,怎么办呢?
原因就是 distinct它来返回不重复记录的条数,而不是用它来返回不重记录的所有值。 也就是distinct只能返回它的目标字段,而无法返回其它字段 例如:
SELECTDISTINCTmac,ipfromip +------+------+ |mac|ip| +------+------+ |abc|678| |abc|123| |def|456| |abc|12| +------+------+
他还是不会有变换!因为上面的语句产生的作用就是作用了两个字段,也就是必须得mac与ip都相同的才会被排除
***没有办法,使用group by 看看!!!! 查看mysql 手册!connt(distinct name) 可以配合group by 实现。 一个count函数实现我要的功能。
select*,count(distinctmac)fromipgroupbymac; +------+------+---------------------+ |mac|ip|count(distinctmac)| +------+------+---------------------+ |abc|678|1| |def|456|1| +------+------+---------------------+
基本实现我的想法!
那如何实现一个表有两个字段mac和ip,如何找出所有的mac相同而ip不同的记录?
mysql>select*fromip; +-----+-----+ |mac|ip| +-----+-----+ |abc|123| |def|456| |ghi|245| |abc|678| |def|864| |abc|123| |ghi|245| +-----+-----+ 7rowsinset(0.00sec) mysql>SELECTDISTINCTa.mac,a.ip ->FROMipa,ipb ->WHEREa.mac=b.macANDa.ip<>b.ipORDERBYa.mac; +-----+-----+ |mac|ip| +-----+-----+ |abc|678| |abc|123| |def|864| |def|456| +-----+-----+ 4rowsinset(0.00sec)
原文链接:https://77isp.com/post/4286.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态