Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Cekap Memilih Rekod Terkini dalam MySQL Berdasarkan Berbilang Tarikh?

Bagaimana untuk Cekap Memilih Rekod Terkini dalam MySQL Berdasarkan Berbilang Tarikh?

Patricia Arquette
Lepaskan: 2024-12-31 11:01:14
asal
409 orang telah melayarinya

How to Efficiently Select the Most Recent Records in MySQL Based on Multiple Dates?

Memilih Rekod Terkini daripada Jadual MySQL Berdasarkan Berbilang Tarikh

Dalam jadual MySQL menyimpan data dengan cap masa, kaedah, ID, dan respons, matlamatnya ialah untuk mendapatkan semula rekod terkini bagi setiap gabungan kaedah dan ID.

Untuk mencapai ini, anda boleh menggunakan pertanyaan yang dioptimumkan berikut:

SELECT *
FROM (
    SELECT *,
    if(@last_method = method, 0, 1) AS new_method_group,
    @last_method := method
    FROM rpc_responses
    ORDER BY method, timestamp DESC
) AS t1
WHERE new_method_group = 1;
Salin selepas log masuk

Pertanyaan ini memanfaatkan pembolehubah MySQL untuk mengelakkan keperluan untuk menyertai. Ia menggunakan langkah berikut:

  1. Untuk setiap baris dalam jadual rpc_responses, ia menetapkan kumpulan baharu untuk kaedah mengenal pasti kumpulan kaedah yang berbeza.
  2. Baris dengan kaedah yang sama tergolong dalam kumpulan yang sama.
  3. Barisan cap masa terkini dalam setiap kumpulan kaedah dipilih dengan mengisih mengikut kaedah dan cap masa dalam menurun pesanan.
  4. Pertanyaan menapis hasil untuk hanya memasukkan baris yang paling terkini dalam setiap kumpulan kaedah.

Pendekatan ini dengan cekap mendapatkan semula respons terkini untuk setiap gabungan unik kaedah dan ID tanpa perlu menyertai, menghasilkan prestasi yang optimum.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Memilih Rekod Terkini dalam MySQL Berdasarkan Berbilang Tarikh?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan