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 左连接?