首页 >后端开发 >php教程 >LaravelWhereIn 和 GroupBy:如何解决 MySQL 的 1055 错误?

LaravelWhereIn 和 GroupBy:如何解决 MySQL 的 1055 错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-07 16:24:13776浏览

Laravel WhereIn and GroupBy: How to Resolve MySQL's 1055 Error?

Laravel:语法错误或访问冲突:使用WhereIn 和 GroupBy 时出现 1055 错误

对于特定的行数据检索,Laravel 允许我们在同一查询中同时使用WhereIn 和GroupBy。但是,这有时会导致“语法错误或访问冲突:1055 错误”。

错误原因

此错误发生在以下情况:

  • MySQL 设置中启用了严格模式。
  • id 字段,用于WhereIn条件,不包含在GroupBy字段列表中。

解决方案

禁用严格模式

您可以通过设置 'strict' => 来禁用 MySQL 的严格模式false 在 config/database.php 文件的 'mysql' 数组中。

'mysql' => [
    ...
    'strict'   => false,
    ...
],

将模式添加到 MySQL 选项

或者,您可以启用严格模式并将特定模式添加到“mysql”的“modes”选项中array:

'mysql' => [
    ...
    'strict' => true,
    'modes' => ['STRICT_TRANS_TABLES'],
    ...
],

在WhereIn中合并GroupBy字段

确保WhereIn条件中使用的id字段也包含在GroupBy字段列表中。这将防止错误发生。

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

通过实施这些解决方案,您可以解决在同一查询中使用WhereIn 和 GroupBy 时出现的“语法错误或访问冲突:1055 错误”。

以上是LaravelWhereIn 和 GroupBy:如何解决 MySQL 的 1055 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn