Django ORM distinct去重失败

解决了一个关于使用Django ORM进行数据去重的问题,通过正确应用distinct和order_by实现了有效的数据去重。
小孩已经入睡,坐下来会想了一下一周的工作,突然想到了一个值得记
录下来的事情,过程如下:
上周,小伙伴开发的运维看板+工具接到一个需求,希望可以通过微服务
包名称查询到该微服务属于哪个服务包,在这之前工具已经具备正向查
询依赖的能力,这次只是做一个反向查询,瞬间感觉so easy ,后台接口
10行代码搞定,做一个接口测试,出现重复数据,到数据库核实之后确实
小伙伴查询的几个字段组合存在重复数据,没问题,那就去重呗,
django orm,这么强大框架,去重这种小事情自然不在话下,果断使用
distinct进行去重,加上之后信心满满,不过作为一个严谨的程序猿,还
是要测一下的,不测不要紧,一测之下,小伙伴都惊呆了🤯🤯🤯,竟然没
有去重,彷佛小伙伴根本没有加上distinct这么牛逼的过滤一样,在刹那
的慌乱之后一个成熟的程序猿的素养告诉自己不要慌,这不是你的问
题,应该是distinct是个报废的功能😏😏😏,我要去官网求证,于是乎我
得到了这样的解释:
在使用distinct进行去重的时候,除了指定的字段之外,会加上order_by
中的字段,如果没有进行order_by操作,则会加上默认的oeder_by字
段,此时此刻小伙伴默默的年了一句,你大爷的,然后在distinct后面加
上了order_by指定了要去重的三个字段中的一个,测试,瞬间得到了去重
后的数据。。。
此时,该功能已经给用户带来了便利,提升了效率,不过小伙伴想到了
这个事情,记录下来
最后,官方文档有时间还是要熟读的,实在没时间了,在遇到这种基本
功能上的问题的时候首选官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值