THINKPHP中怎么对数据进行分组查询?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了THINKPHP中怎么对数据进行分组查询?相关的知识,希望对你有一定的参考价值。
分组查询原理都是SQL的分组查询,THINKphp中只是用到他自己的一些自定义的方法!比如 join()、group()、having()方法等,实际对应的也是SQL里的这些关键字!例如本次需求是要按照cid进行分组,按照通常的做法是 SELECT * FROM 表名 GROUP BY cid,这样就能按照cid进行分组筛选!然后使用THINKPHP的时候则使用 M('表名')->group('cid')->select(); 实际生成的语句和原始SQL代码是一样的。 参考技术A 你的分组查询是什么意思?是指这个吗?
分组查询主要是指Group By字句将行划分成较小的组,然后使用聚合函数返回每一组的汇总信息。分组查询一般是用来满足统计需求的。追问
额。用的group 只能 取到 第一条数据。
追答也许你的表述有问题,说说你要的效果吧?
追问不用了。 我已经用别的方法解决了。谢谢。
追答OK!
本回答被提问者采纳关于thinkphp5中数据库分组查询group
在使用tp5的group进行分组查询总是报错,以主键进行分组是不报错,但没有任何意义
与聚合函数一起使用的不会报错,如官方文档给出的代码
Db::table(‘think_user‘) ->field(‘user_id,username,max(score)‘) ->group(‘user_id‘) ->select();
但是和我的需求不一样,我需要根据某一列分组将指定字段链接起来
这是我用的原生查询,原生查询字段不需要加单引号
Db::query("select at_id,group_concat(tags_name) from blog_tags group by at_id");
这是可以获得我想要的结果,组合成的数据是用逗号连接的
以上是关于THINKPHP中怎么对数据进行分组查询?的主要内容,如果未能解决你的问题,请参考以下文章