Groupby 查询在 laravel 查询生成器中不起作用

Posted

技术标签:

【中文标题】Groupby 查询在 laravel 查询生成器中不起作用【英文标题】:Groupby query is not worked in laravel query builder 【发布时间】:2016-07-21 06:26:24 【问题描述】:

我正在使用以下查询:

$data = DB::table('developers')
->select('iDeveloperId', 'vFirstName', 'vLastName', 'iGroupId')
->groupBy('vFirstName')
->get();

但我收到如下错误:

Warning: Creating default object from empty value in /var/www/html/laravel_demo/query_builder/db_config.php on line 40

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'hbmp_hims.developers.iDeveloperId' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by' in /var/www/html/laravel_demo/query_builder/illuminate/vendor/illuminate/database/Connection.php:333 Stack trace: #0 /var/www/html/laravel_demo/query_builder/illuminate/vendor/illuminate/database/Connection.php(333): PDO->prepare('select `iDevelo...') #1 /var/www/html/laravel_demo/query_builder/illuminate/vendor/illuminate/database/Connection.php(662): Illuminate\Database\Connection->Illuminate\Database\closure(Object(Illuminate\Database\mysqlConnection), 'select `iDevelo...', Array) #2 /var/www/html/laravel_demo/query_builder/illuminate/vendor/illuminate/database/Connection.php(629): Illuminate\Database\Connection->runQueryCallback('select `iDevelo...', Array, O in /var/www/html/laravel_demo/query_builder/illuminate/vendor/illuminate/database/Connection.php on line 669

我犯了什么错误。

注意:使用iDeveloperId代替vFirstName时有效

提前致谢...

【问题讨论】:

【参考方案1】:

尝试在您的 MySQL 数据库中禁用 Full group by

SET sql_mode = ''

【讨论】:

我试过了,但我的 Mysql 数据库显示以下模式 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CRE... @@sql_mode ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_AUTO_CRE... 解决办法是什么,注意:我的数据库是5.7版本有什么问题 @GattiSrinivas 解决方案是答案中写的:禁用完整组 SET sql_mode = '' 在数据库中执行成功但sql_mode保持不变【参考方案2】:

我得到了答案

SET GLOBAL sql_mode = '';

【讨论】:

以上是关于Groupby 查询在 laravel 查询生成器中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 laravel 查询生成器从表联合的结果中选择列?

在 Laravel 中如何在查询中不带参数的 groupBy Url

如何在 Laravel 5 的嵌套查询中使用 GroupBy?

在 Laravel 中进行复杂查询的 orderBy 之后的 GroupBy

Laravel 6,MYSQL - 如何使用 Laravel Querybuilder 或 Model Eloquent 将子查询与 GroupBY 左连接?

laravel 查询 - 加入 2 个表和 groupBy 相同的 ID