首頁  >  文章  >  資料庫  >  如何使用ActiveRecord尋找MySQL中每個使用者的最新存取情況?

如何使用ActiveRecord尋找MySQL中每個使用者的最新存取情況?

原創
2024-10-30 01:36:28833瀏覽

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

如何使用ActiveRecord 在MySQL 中尋找不同使用者的最新存取

嘗試使用DISTINCT ON 函數時遇到語法錯誤ActiveRecord 中的SQLMy ?解如下:

初始查詢:

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