TP5查询/统计去除重复的方法及注意事项和用法(distinct,group与having)

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

原文地址:https://www.cnblogs.com/wangyongx/p/14976365.html