Laravel中如何统计students表career字段的重复记录数?
Laravel统计MySQL字段重复记录数
你需要用分组统计的方式实现需求,直接查询所有记录无法得到重复次数,以下两种方法都能满足要求:
方法一:原生SQL查询
直接通过DB::select执行分组统计的SQL语句:
$results = DB::select('SELECT career, COUNT(*) AS count FROM students GROUP BY career');
这条SQL会按career字段分组,统计每个值的出现次数,返回结果是包含career(字段值)和count(重复次数)的数组集合。
方法二:Laravel Query Builder(推荐)
用Laravel查询构造器写法,更贴合框架风格:
$results = DB::table('students') ->select('career', DB::raw('COUNT(*) AS count')) ->groupBy('career') ->get();
DB::raw('COUNT(*) AS count')用于在查询中直接使用MySQL的COUNT函数,避免Laravel将其解析为普通字段名groupBy('career')指定按career字段分组get()返回包含统计结果的集合
示例输出
两种方法返回的结果结构类似,针对你的数据会得到:
[ {"career": 1, "count": 3}, {"career": 2, "count": 1} ]
你可以通过遍历集合或直接访问属性获取对应值,比如$results[0]->count就能拿到值1的重复次数3。
内容的提问来源于stack exchange,提问作者Omar Elio Torres Castillo
相关产品推荐
相关产品推荐

