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!