Cara Mencari Lawatan Terkini Semua Pengguna Terkenal dalam Rails dengan MySQL
Anda ingin mendapatkan semula masa lawatan terkini untuk setiap pengguna yang berbeza dalam pangkalan data anda. Anda cuba menggunakan fungsi DISTINCT ON dalam pertanyaan ActiveRecord anda, tetapi anda menghadapi ralat sintaks SQL.
Fungsi DISTINCT ON khusus untuk PostgreSQL dan MySQL tidak menyokongnya. Sebaliknya, anda boleh mencapai hasil yang diingini menggunakan fungsi GROUP BY dan MAX.
Ubah suai pertanyaan anda kepada yang berikut:
<code class="ruby">Event.group(:user_id).maximum(:time)</code>
Pertanyaan ini akan mengumpulkan acara mengikut user_id dan mengembalikan maksimum nilai masa bagi setiap kumpulan. Ini akan memberi anda masa lawatan terkini untuk setiap pengguna unik.
Output:
Output yang terhasil akan menjadi cincang, di mana kuncinya ialah user_id dan nilai ialah masa lawatan terkini sebagai objek Masa:
<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>
Perhatikan bahawa anda boleh menggunakan strftime untuk memformat nilai masa mengikut keinginan anda.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Masa Lawatan Terkini untuk Setiap Pengguna Unik dalam Rails dengan MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!