1、group(字段名)
根据设置的分组的字段名去除重复;
2、distinct(true)
一般写在field()前,根据field定义的字段去除重复;
区别:group('字段名')不能和聚合查询如:count();sum();等连用,而distinct(true)可以,但并没有什么卵用,聚合函数计算的结果并不是根据去除重复后的查询出的数据来计算。
group('字段名')可配合having()函数一起使用,从分组的结果中筛选(通常是聚合条件)数据
Db::table('think_user') ->field('username,max(score)') ->group('user_id') ->having('count(test_time)>3') ->select();
例如group('字段名')和聚合查询连用
输出结果,报错
如果非得用group('字段名')统计可以这样写:先分组查询,再计算总数
用法:
输出结果:
上面例子演示的是当只查询一个字段去除重复时,group和distinct(true)效果相同。
注:当只查询一个字段时,用column()函数可以返回一个一维数组
版权声明:TP5查询去除重复的方法及注意事项和用法(distinct,group与having) 来源于网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。原文链接:https://blog.csdn.net/qq_41912505/article/details/86511950