distinct多个字段用法

DISTINCT多字段是按组合去重,不是单独去重。

说白了,name和age一起看,city也一起看。
只要组合没重复,就全保留。

上周刚处理一个,客户以为SELECT DISTINCT name FROM users就能去重。
结果发现age重复的也留着,挺坑的。

自己看,这个逻辑搞懂不?

数据库中 DISTINCT 的作用是什么?

说白了,DISTINCT就是数据库里的"去重工具",简单说就是选出独一无二的行。
这事复杂在去重逻辑上——比如去年我们跑那个电商项目,表里有3 000条订单,用DISTINCT("OrderID,UserID")时,只有当订单号和用户ID完全一致才算重复,这个点很多人没注意。
另外一点,如果你用"SELECT DISTINCT Company FROM Orders"查询,结果会按字母顺序返回IBM、Apple、W3 School,但如果你想自定义排序,比如按订单金额排序,就得分两步:先用DISTINCT选出来,再ORDER BY改顺序。
等等,还有个事,我一开始也以为DISTINCT很慢,后来发现对列加索引能提速9 0%以上,说实话挺坑的。

建议试试在去重字段上建索引,但别把所有字段都加,那样反而影响写操作。

SQL语句在数据库(mdb)中的应用:select distinct

嗨,老哥,说到这SELECT DISTINCT,我可是深有感触啊。
记得刚入门数据库那会儿,我在一个测绘项目的数据库里头,得统计一下各个地类的数量。
那会儿,地类信息表里头,同一种地类信息有好几个重复,搞得我头都大了。

当时就是用的SELECT DISTINCT,简单到不行。
比如我想要的地类信息在DLTB这个表里,地类名称的列是DLMC。
我就在SQL语句里写上:SELECT DISTINCT DLMC FROM DLTB。
这玩意儿一出马,嗖的一下,那些重复的地类信息就全都被筛选出来了,直接给我一个干净利落地类名称列表。

说起来,操作也简单,就几步:先在数据库工具里头打开SQL输入面板,然后输入这个语句,执行一下,结果就出来了。
我当时也没想明白,怎么就这么神奇地就完成了任务。

不过呢,使用SELECT DISTINCT也得注意点细节。
比如说,得确保你的输入法是英文的,别用中文输入法打标点,不然容易出错。
还有,表名和字段名得和数据库里头的一模一样,别打错字,否则查询可能就失败咯。

这玩意儿在数据去重方面特别管用,尤其是那种分类统计啊、分析唯一值啥的场景。
说实话,现在回想起那个测绘项目,感觉那会儿的自己还是挺有成就感的。
虽然当时可能有点偏激,但确实是靠着这个小技巧,高效地完成了工作。