在下面的示例中,我要求州立大学为所有州的所有大学。但是我想说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),我只想能够返回每个州的每个大学名称之一。

任何帮助表示赞赏。

mysql - 如何用Laravel的 Eloquent 使非主列在返回的结果集中唯一?-LMLPHP

最佳答案

尝试这个

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/

10-16 19:28