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

1.group('字段名')
2.distinct(true)

group('字段名'):根据设置的分组的字段名去除重复

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()函数可以返回一个一维数组

猜你喜欢

转载自blog.csdn.net/qq_41912505/article/details/86511950