【问题标题】:Groupby query is not worked in laravel query builderGroupby 查询在 laravel 查询生成器中不起作用
【发布时间】: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时有效

提前致谢...

【问题讨论】:

    标签: php laravel laravel-5.1 query-builder laravel-query-builder


    【解决方案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 = '';
    

    【讨论】:

      猜你喜欢
      • 2016-09-28
      • 1970-01-01
      • 2018-11-25
      • 1970-01-01
      • 2015-12-16
      • 1970-01-01
      • 2018-10-23
      • 2015-04-06
      • 2015-12-13
      相关资源
      最近更新 更多