首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在laravel5.2中按顺序使用计数

如何在laravel5.2中按顺序使用计数
EN

Stack Overflow用户
提问于 2016-06-15 10:23:29
回答 1查看 53关注 0票数 1

我想按顺序使用计数,我使用了以下两种方法

第一

代码语言:javascript
复制
DB::table('user_skill')
        ->join('skill_category', 'user_skill.skill_category_id', '=', 'skill_category.skill_category_id')            
        ->select(DB::raw('user_skill.skill_category_id', 'skill_category.skill_name','count(user_skill.skill_category_id) as totalIds'))
        ->orderBy('totalIds','desc')
        ->groupBy('user_skill.skill_category_id')
        ->get();

第二

代码语言:javascript
复制
DB::table('user_skill')
        ->join('skill_category', 'user_skill.skill_category_id', '=', 'skill_category.skill_category_id')            
        ->select(DB::raw('user_skill.skill_category_id', 'skill_category.skill_name'))
        ->orderBy('count(user_skill.skill_category_id)','desc')
        ->groupBy('user_skill.skill_category_id')
        ->get();

但两人都犯了以下错误

代码语言:javascript
复制
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'totalIds' in 'order clause'

有什么建议吗,我怎么解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-15 17:03:31

如果您检查原始函数,您将看到它只接受一个参数。

代码语言:javascript
复制
public static function raw($value){        
    return \Illuminate\Database\MySqlConnection::raw($value);
}

此外,您要做的是传递多个参数,以便只传递第一个参数。

你可以像下面这样修理它,

代码语言:javascript
复制
->select(DB::raw('user_skill.skill_category_id, skill_category.skill_name, count(user_skill.skill_category_id) as totalIds'))

代码语言:javascript
复制
->select('user_skill.skill_category_id', 'skill_category.skill_name', DB::raw('count(user_skill.skill_category_id) as totalIds'))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37832682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档