Rumah  >  Artikel  >  pangkalan data  >  Bagaimana untuk Mendapatkan Lawatan Terkini Semua Pengguna Unik dalam MySQL ActiveRecord?

Bagaimana untuk Mendapatkan Lawatan Terkini Semua Pengguna Unik dalam MySQL ActiveRecord?

Susan Sarandon
Susan Sarandonasal
2024-10-31 01:02:29530semak imbas

How to Get the Latest Visits of All Unique Users in MySQL ActiveRecord?

Cara Menggunakan Setara dengan DISTINCT ON dalam MySQL ActiveRecord

Keperluan adalah untuk mendapatkan semula lawatan terkini semua pengguna yang berbeza daripada acara meja. Menggunakan klausa DISTINCT ON(user_id) dengan MySQL dalam ActiveRecord menghasilkan ralat sintaks.

Persamaan MySQL dengan DISTINCT ON ialah menggunakan GROUP BY dengan fungsi MAX():

<code class="ruby">Events.group(:user_id).maximum(:time)</code>

Pertanyaan ini akan mengumpulkan hasil mengikut user_id dan mengembalikan nilai maksimum untuk lajur masa untuk setiap kumpulan. Output akan menjadi cincang dengan user_id sebagai kunci dan masa lawatan terkini sebagai nilai:

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

Nota: DISTINCT ON(columns) ialah sintaks khusus PostgreSQL. MySQL tidak menyokong sintaks ini secara langsung.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Lawatan Terkini Semua Pengguna Unik dalam MySQL ActiveRecord?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn