Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan `pid` Terkini dengan Cekap untuk Setiap `rid` Unik Menggunakan `MAX()` MySQL dan `GROUP BY`?

Bagaimana untuk Mendapatkan `pid` Terkini dengan Cekap untuk Setiap `rid` Unik Menggunakan `MAX()` MySQL dan `GROUP BY`?

Mary-Kate Olsen
Lepaskan: 2025-01-01 00:16:09
asal
256 orang telah melayarinya

How to Efficiently Retrieve the Latest `pid` for Each Unique `rid` Using MySQL's `MAX()` and `GROUP BY`?

Pengoptimuman Pertanyaan MySQL: MAX() dan GROUP BY

Masalah:

Diberikan jadual dengan lajur pid, cap waktu , kos dan menghapuskan, tugasnya adalah untuk mendapatkan semula pid baris terkini untuk setiap unik rid, memandangkan pid ialah kunci utama autokenaikan.

Pertanyaan Asal:

Pertanyaan berikut mendapatkan cap masa maksimum dan nilai penyingkiran yang sepadan, tetapi ia tidak mengembalikan yang terkini dengan betul pid:

SELECT MAX(timestamp), rid, pid FROM theTable GROUP BY rid
Salin selepas log masuk

Penyelesaian:

Untuk mendapatkan pid terkini secara berkesan bagi setiap rid, gabungan teknik diperlukan:

  1. Kenal pasti cap masa maksimum dan penyingkiran yang sepadan nilai:

    SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid
    Salin selepas log masuk
  2. Sertai jadual asal berbanding hasil cap masa maksimum:

    SELECT
        t.pid,
        t.cost,
        t.timestamp,
        t.rid
    FROM
        theTable AS t
    JOIN
        (SELECT rid, MAX(timestamp) AS maxt FROM theTable GROUP BY rid) AS maxt
    ON
        t.rid = maxt.rid AND t.timestamp = maxt.maxt
    Salin selepas log masuk

Pertanyaan yang disemak ini berkesan mendapatkan semula pid, kos, cap masa dan menyingkirkan baris terkini untuk setiap unik buang dalam jadual asal.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan `pid` Terkini dengan Cekap untuk Setiap `rid` Unik Menggunakan `MAX()` MySQL dan `GROUP BY`?. 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