MySQL を使用して Rails ですべての異なるユーザーの最新の訪問を確認する方法
各異なるユーザーの最新の訪問時間を取得したい場合あなたのデータベースに。 ActiveRecord クエリで DISTINCT ON 関数を使用しようとしていますが、SQL 構文エラーが発生しました。
DISTINCT ON 関数は PostgreSQL に固有であり、MySQL はサポートしていません。代わりに、GROUP BY 関数と MAX 関数を使用すると、目的の結果を得ることができます。
クエリを次のように変更します。
<code class="ruby">Event.group(:user_id).maximum(:time)</code>
このクエリは、user_id でイベントをグループ化し、最大値を返します。各グループの時間値。これにより、各固有のユーザーの最新の訪問時間が得られます。
出力:
結果の出力はハッシュになり、キーは user_id と値になります。は、Time オブジェクトとしての最新の訪問時刻です:
<code class="ruby">{ 21 => Tue, 18 Dec 2018 11:15:24 UTC +00:00, 23 => Thu, 20 Dec 2018 06:42:10 UTC +00:00 }</code>
strftime を使用して、好みに合わせて時間値をフォーマットできることに注意してください。
以上がMySQL を使用して Rails で各一意のユーザーの最新の訪問時間を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。