ホームページ >データベース >mysql チュートリアル >ActiveRecord を使用して MySQL で各ユーザーの最新の訪問を確認するにはどうすればよいですか?

ActiveRecord を使用して MySQL で各ユーザーの最新の訪問を確認するにはどうすればよいですか?

オリジナル
2024-10-30 01:36:28875ブラウズ

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')

は、DISTINCT ON が MySQL でサポートされていないため、エラーを返します。代わりに、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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。