Laravel groupBy 与 select 多个字段
Laravel groupBy with select multiple field
我可以 select country
和 groupBy 结果如下,使用别名 total
:
Data::select('country', DB::raw('count(*) as total'))
->groupBy('country')
->get();
以上代码运行良好。
我这里可以select只country
字段,但是我需要select和name
,positions
字段,我这里怎么select多个字段?
首先,您需要指定error/exception您得到的是什么,但您可以通过
添加额外的列
DB::table('table_name')->select([DB::raw('count(*) as total'), 'name', 'positions', 'country'])
->groupBy('country')
->get());
您也可能遇到访问冲突异常,需要您更改 sql_mode
您必须使用如下设置并更改代码。
- 打开
config/database.php
- 在 mysql 连接设置中找到
strict
键
- 将值设为
false
像下面这样使用代码
ModelName::groupBy('country')
->selectRaw('count(*) as total, country, name, positions')
->get()
我可以 select country
和 groupBy 结果如下,使用别名 total
:
Data::select('country', DB::raw('count(*) as total'))
->groupBy('country')
->get();
以上代码运行良好。
我这里可以select只country
字段,但是我需要select和name
,positions
字段,我这里怎么select多个字段?
首先,您需要指定error/exception您得到的是什么,但您可以通过
添加额外的列DB::table('table_name')->select([DB::raw('count(*) as total'), 'name', 'positions', 'country'])
->groupBy('country')
->get());
您也可能遇到访问冲突异常,需要您更改 sql_mode
您必须使用如下设置并更改代码。
- 打开
config/database.php
- 在 mysql 连接设置中找到
strict
键 - 将值设为
false
像下面这样使用代码
ModelName::groupBy('country')
->selectRaw('count(*) as total, country, name, positions')
->get()