gpt4 book ai didi

php - 语法错误或访问冲突 : 1140 Mixing of GROUP columns laravel

转载 作者:行者123 更新时间:2023-12-03 11:23:13 25 4
gpt4 key购买 nike

我已经用分页写了这个查询

$items = Item::select('items.*', 'sub_category_name', 'category_name', 'sub_category_slug', 'category_slug')
->join('sub_categories AS sc', 'sc.sc_id', 'items.sub_category_id')
->join('categories AS c', 'c.category_id', 'sc.category_id')
->where('items.is_active', '=', 1)
->where('sc.is_active', '=', 1)
->where('c.is_active', '=', 1)
->where('sc.sc_id', '=', $sub_category_id)
->paginate(1);

但它说

语法错误或访问冲突:1140 混合 GROUP 列 (MIN(),MAX(),COUNT(),...) 如果没有 GROUP BY 子句,则没有 GROUP 列是非法的

但是当我添加 ->groupBy('item_id');它说

语法错误或访问冲突:1055 'books.items.item_name' 不在 GROUP BY 中

但是当我在 groupBy 子句中执行 item_name 时,它​​会说到下一列的 groupBy。为什么?

最佳答案

当您使用像 MIN(),MAX(),COUNT() AVG() 这样的聚合函数时您必须使用 Group BY
但在最新 MYSQL你也必须使用 select 中的所有列作为一个组。

在您的 config/database.php关闭严格模式。

'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
'strict' => false之后,您也可以在单个列上使用 group by。

关于php - 语法错误或访问冲突 : 1140 Mixing of GROUP columns laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49846961/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com