AR查询多字段结果去重
来源:互联网 发布:淘宝店铺怎么投诉 编辑:程序博客网 时间:2024/04/29 04:48
需要解决的问题:假设有表user,查询其中字段user_name和mobile;在数据中mobile有多条重复,当前我们想去重然后取出多条数据,我们需要相同的名字和手机号只作为一条记录显示
常规的方法是以下查询:
Users::find()->select(['user_name','mobile'])->distinct()->where(['mobile'=>'xxxxxxxxxxx'])->all();
所获取的sql如下:
SELECT DISTINCT `user_name`, `mobile` FROM `hundred2_users` WHERE `mobile`='xxxxxxxxxxx';
使用这条sql查询之后大家会发现无法去重,原因是DISTINCT了他后面的两个字段,必须在user_name和mobile都重复的情况下才会去重。为了解决这种尴尬的问题,我们使用以下的方法,已去重mobile为例:
Users::find()->select(['user_name','mobile'])->groupBy(['mobile','user_name'])->where(['mobile'=>'xxxxxxxxxxx']);
会获得以下sql:
SELECT `user_name`, `mobile` FROM `hundred2_users` WHERE `mobile`='xxxxxxxxxxx' GROUP BY `mobile`;
最终取得所需要的数据。
阅读全文
1 0
- AR查询多字段结果去重
- Sql根据多字段联合去重
- 数据库查询结果去重
- lucene多字段查询
- lucene多字段查询
- 多字段查询
- lucene多字段查询
- sphinx多字段查询
- 多字段查询排序
- Oracle 多字段查询
- distinct 多字段去重复
- distinct 多字段去重复
- 单表多字段查询
- sql2005多字段模糊查询
- 多字段查询、搜索心得
- jqGrid的多字段查询
- SQL多字段模糊查询
- 多字段模糊查询方法
- spring中@Autowired、@Resource和@Service
- 7-76 地下迷宫探索(30 分)
- springBoot 打成war包
- 工作中细节
- 最快捷的Unity破解安装以及VS编辑器,安卓,IOS等环境的搭建
- AR查询多字段结果去重
- antlr4学习(二)
- 求二进制数中0或1的个数
- 《软件测试》学习笔记03
- 带动态效果的炫酷Button按钮
- 绝对路径和相对路径的选择
- 双向循环链表长整数加法(大数加减法)
- <linux线程>同步互斥机制之【条件变量】
- python3 下载图片