Mysql 如何使用Laravel的Elount使非主列在返回的结果集中唯一?
在下面的例子中,我请求所有州为CO的大学,但我想说groupBy'name'或其他什么,以便获得一个大学名称记录 我尝试时出现以下错误:Mysql 如何使用Laravel的Elount使非主列在返回的结果集中唯一?,mysql,laravel,eloquent,Mysql,Laravel,Eloquent,在下面的例子中,我请求所有州为CO的大学,但我想说groupBy'name'或其他什么,以便获得一个大学名称记录 我尝试时出现以下错误: # Error: SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'imr.colleges.id' which is
# Error:
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'imr.colleges.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select * from `colleges` where `state` = CO group by `name` limit 15 offset 135)
# Code:
College::where('state',$state)->groupBy('name')->paginate(15);
我并不特别关心返回哪个学院id,我只想能够返回每个州的每个学院名称中的一个
感谢您的帮助
试试这个
College::selectRaw('GROUP_CONCAT(id), name, GROUP_CONCAT(state)')->where('state',$state)->groupBy('name')->paginate(15);
试试这个
College::selectRaw('GROUP_CONCAT(id), name, GROUP_CONCAT(state)')->where('state',$state)->groupBy('name')->paginate(15);
我也更新了城市专栏的答案。请再试一次。或者你可以完全从查询中省略城市,因为你只需要学院的名称!我也更新了城市专栏的答案。请再试一次。或者你可以完全从查询中省略城市,因为你只需要学院的名称!