Jadual MySQL yang disediakan, rpc_responses, menyimpan respons kepada panggilan RPC dengan medan termasuk cap waktu, kaedah, id dan respons. Matlamatnya ialah untuk mendapatkan semula respons terbaharu untuk gabungan kaedah dan id yang berbeza.
Untuk mencapai ini, kami boleh memanfaatkan fungsi ROW_NUMBER() MySQL dengan klausa windowing:
SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY method, id ORDER BY timestamp DESC) AS row_num FROM rpc_responses ) AS subquery WHERE row_num = 1
Ini pertanyaan menggunakan subkueri untuk mengira nombor baris bagi setiap gabungan kaedah dan id yang berbeza, disusun dalam susunan menurun mengikut medan cap masa. Pertanyaan luar kemudiannya menapis keputusan untuk memilih hanya baris dengan baris nombor 1, yang mewakili rekod terbaharu untuk setiap gabungan.
Pendekatan ini harus mendapatkan semula data yang dikehendaki dengan cekap tanpa memerlukan gabungan kompleks atau jadual sementara .
Atas ialah kandungan terperinci Bagaimana untuk Mencari Rekod Terkini untuk Setiap Gabungan Kaedah dan ID dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!