Laravel:语法错误或访问冲突:1055 错误

新手上路,请多包涵

我想在同一个查询中使用 WhereIn 和 Groupby 来获取结果。

我试过这个:

 $loadids=explode("#@*",$reciptdet->loading_id);
$loadingdatas=DB::table('loading')->groupBy('vehicle_no')->whereIn('id',$loadids)->get();

但我收到了这个错误信息:

SQLSTATE[42000]:语法错误或访问冲突:1055 ‘sbrtpt.loading.id’ 不在 GROUP BY 中(SQL:select * from loading where id in (14, 15, 16) group by vehicle_no)

原文由 Karthikvijayaveni 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 412
2 个回答

简短的回答

config\database.php –> "mysql" 数组

设置 'strict' => false 禁用所有。

…. 或者

您可以离开 'strict' => true 并将模式添加到 "mysql" 选项中

'mysql' => [
       ...
       ....
       'strict' => true,
       'modes' => [
            //'ONLY_FULL_GROUP_BY', // Disable this to allow grouping by one column
            'STRICT_TRANS_TABLES',
            'NO_ZERO_IN_DATE',
            'NO_ZERO_DATE',
            'ERROR_FOR_DIVISION_BY_ZERO',
            'NO_AUTO_CREATE_USER',
            'NO_ENGINE_SUBSTITUTION'
        ],
 ]


详细解答

您可能不需要禁用所有 严格 选项…请查看有关此问题的 答案

原文由 Husam 发布,翻译遵循 CC BY-SA 3.0 许可协议

后来google了一会,得知问题是sql_mode设置引起的,将config/database.php的配置修改为strict => false。

链接: https ://stdworkflow.com/147/laravel-syntax-error-or-access-violation-1055-error

原文由 drodriguez 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题