Model.group(:id)引发错误“选择列表不在GROUP BY子句中,包含非聚合列” id”

时间:2019-05-08 23:59:40

标签: ruby-on-rails ruby-on-rails-5

我正在使用Model.group(:category)以便基于Rails 5应用程序中的category字段获取唯一记录。 表格数据:

id catgeory description
1    abc      test
2    abc      test1
3    abc      test2
4    xyz      test
5    xyz       testabc

我想要记录(1,4)作为结果。因此,我正在使用Model.group(:category),它对于sql_mode为“”的MYSQL可以正常工作。 不幸的是,它抛出错误“ SELECT列表不在GROUP BY子句中,并且包含未聚合的列,该列在功能上不依赖于GROUP BY子句中的列;这与sql_mode = only_full_group_by不兼容”,其sql_mode为“ only_full_group_by”。 什么是更改查询以匹配模式的最佳方法?

1 个答案:

答案 0 :(得分:0)

也许尝试指定您想要哪个id?您可以使用MIN(id)MAX(id)等。

MySQL支持对SQL described here的非标准扩展。要继续使用该行为,您可以将sql_mode中的TRADITIONAL更改为config/database.yml