Laravel:语法错误或访问冲突:使用WhereIn 和 GroupBy 时出现 1055 错误
对于特定的行数据检索,Laravel 允许我们在同一查询中同时使用WhereIn 和GroupBy。但是,这有时会导致“语法错误或访问冲突:1055 错误”。
错误原因
此错误发生在以下情况:
解决方案
禁用严格模式
您可以通过设置 '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中文网其他相关文章!