【问题标题】:Error with GROUP_CONCAT in Elequent requestElequent 请求中的 GROUP_CONCAT 错误
【发布时间】:2017-06-17 02:06:27
【问题描述】:

我想用 eloquent (Laravel 4.2) 向数据库发出请求。我对GROUP_CONCAT SQL 函数有疑问:

$articles = Article::join('tags', function ($join) {
            $join->on('articles.id', '=', 'tags.article_id');
        })->get(array('articles.*', 'GROUP_CONCAT(tags.tag_id SEPARATOR ', ') as tags'));

我收到了这个 sql 错误:

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'GROUP_CONCAT(tags.tag_id SEPARATOR ' in 'field list' (SQL: select `articles`.*, `GROUP_CONCAT(tags`.`tag_id SEPARATOR `, `)` as `tags` from `articles` inner join `tags` on `articles`.`id` = `tags`.`article_id`

【问题讨论】:

    标签: mysql laravel laravel-4 eloquent


    【解决方案1】:

    你需要一个raw expression:

    $articles = DB::table('articles')
                    ->select(DB::raw('articles.*', 'GROUP_CONCAT(tags.tag_id SEPARATOR ', ') as tags'))
                    ->join('tags', function ($join) {
                        $join->on('articles.id', '=', 'tags.article_id');
                    })->get();
    

    【讨论】:

    • 它不起作用 :( 它不会在结果中返回标签
    猜你喜欢
    • 2015-04-16
    • 1970-01-01
    • 2013-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-08
    • 2015-02-11
    相关资源
    最近更新 更多