Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mendapatkan Tarikh Log Masuk Terkini dan Nilai Berkaitan untuk Setiap Pengguna dalam Pangkalan Data?
Teknik Pangkalan Data untuk Mendapatkan Log Masuk Terkini dan Data Berkaitan
Panduan ini menunjukkan cara untuk mendapatkan semula tarikh log masuk terkini dan nilai yang berkaitan dengan cekap untuk setiap pengguna dalam jadual pangkalan data yang menyimpan cap masa log masuk. Kami akan meneroka dua kaedah yang berkesan:
Kaedah 1: Pendekatan Subkueri
Kaedah klasik ini menggunakan subkueri untuk menentukan tarikh log masuk maksimum bagi setiap pengguna, kemudian menggabungkan hasil ini dengan jadual utama untuk mengekstrak data yang berkaitan:
<code class="language-sql">SELECT t.username, t.date, t.value FROM MyTable t INNER JOIN ( SELECT username, MAX(date) AS MaxDate FROM MyTable GROUP BY username ) tm ON t.username = tm.username AND t.date = tm.MaxDate;</code>
Kaedah 2: Memanfaatkan Fungsi Tetingkap
Untuk pangkalan data yang menyokong fungsi tetingkap, pendekatan ini menawarkan penyelesaian yang lebih cekap dan mantap, menghapuskan kemungkinan entri pendua dan menjamin ketepatan:
<code class="language-sql">SELECT x.username, x.date, x.value FROM ( SELECT username, date, value, ROW_NUMBER() OVER (PARTITION BY username ORDER BY date DESC) AS _rn FROM MyTable ) x WHERE x._rn = 1;</code>
Pertanyaan ini menggunakan fungsi ROW_NUMBER()
untuk menetapkan kedudukan unik kepada setiap rekod dalam partition khusus pengguna, disusun mengikut tarikh dalam tertib menurun. Pertanyaan luar kemudian menapis untuk memilih hanya rekod kedudukan teratas (log masuk terbaharu) untuk setiap pengguna. Kaedah ini biasanya lebih disukai kerana prestasi dan kejelasannya.
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Tarikh Log Masuk Terkini dan Nilai Berkaitan untuk Setiap Pengguna dalam Pangkalan Data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!