在下面的示例中,我要求州立大学为所有州的所有大学。但是我想说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 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);
关于mysql - 如何用Laravel的 Eloquent 使非主列在返回的结果集中唯一?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50334257/