mysql - laravel,groupby()中的子字符串

标签 mysql laravel laravel-5 eloquent

我会按 orderBy 对选定的列进行分组,而没有来自 cars.name 的最后 3 个字符。

$objects_collection = $objects_collection
        ->groupBy("cars.name", "parts.part_catalog_id", "parts.colour_id")
        ->select($this->getProperTableName(str_plural($this->getRoute())) . ".*", DB::raw("count(*) as quantity"))
        ->paginate($paginate);

我应该怎么做?

编辑:

解决方案是:

$objects_collection = $objects_collection
        ->groupBy(DB::raw("SUBSTRING_INDEX(cars.name, '/', 1)"), "parts.part_catalog_id", "parts.colour_id")
        ->select($this->getProperTableName(str_plural($this->getRoute())) . ".*", DB::raw("count(*) as quantity"))
        ->paginate($paginate);

最佳答案

如果您使用的是 MySQL,您可以尝试一下:

$objects_collection = $objects_collection
    ->groupBy("cars.name", "parts.part_catalog_id", "parts.colour_id")
    ->select(DB::raw('SUBSTR(`cars.name`, 1, (LENGTH(`cars.name`)-3))'), $this->getProperTableName(str_plural($this->getRoute())) . ".*", DB::raw("count(*) as quantity"))
    ->orderByRaw('1')'
    ->paginate($paginate);

正如您所说,您想要orderBy

关于mysql - laravel,groupby()中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37600488/

相关文章:

C# MySQL 参数不起作用

MySQL - 当 SELECT 返回多列时,根据 SELECT 的结果更新一列

laravel - 如何检查集合的列是否与数组匹配

laravel - laravel中如何获取应用程序名称?

mysql - 尽管我已经创建了 "Table ' 数据库,为什么它显示 ERROR 1146 'student' Student.db“不存在”?

php - LIMIT 1 对于顶级表WITH JOIN

php - 如何在 PHP 或 Laravel 中访问 JsonResponse 对象中的属性值?

node.js - 无法连接到 Redis

php - 对非 PHP 文件使用 Laravel @include 指令?

laravel-5 - Laravel 社交名媛 : How to change redirect_uri at runtime?