首页  >  文章  >  数据库  >  如何使用ActiveRecord查找MySQL中每个用户的最新访问情况?

如何使用ActiveRecord查找MySQL中每个用户的最新访问情况?

原创
2024-10-30 01:36:28826浏览

How to Find the Latest Visit for Each User in MySQL with ActiveRecord?

如何使用 ActiveRecord 在 MySQL 中查找不同用户的最新访问

尝试使用 DISTINCT ON 函数时遇到语法错误ActiveRecord 中的 MySQL?解决方案如下:

初始查询:

Event.order(time: :desc).select('DISTINCT ON(user_id) user_id, time')

返回错误,因为 MySQL 不支持 DISTINCT ON。相反,您可以使用 GROUP BY 和 MAX 的组合来实现所需的结果。

修改后的查询:

Events.group(:user_id).maximum(:time)

此查询将按 user_id 对事件进行分组,并查找最长时间每个组,有效地为您提供每个不同用户的最新访问。

预期输出:

{ 21 => "2018-12-18 09:44:59", 42 => "2018-12-19 12:08:59"}

请注意,时间戳格式可能会根据您的数据库配置而有所不同.

以上是如何使用ActiveRecord查找MySQL中每个用户的最新访问情况?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn