Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mengambil PID Baris Terkini untuk Setiap RID Unik dalam MySQL?

Bagaimana untuk Mengambil PID Baris Terkini untuk Setiap RID Unik dalam MySQL?

Patricia Arquette
Lepaskan: 2025-01-04 07:12:33
asal
165 orang telah melayarinya

How to Fetch the Latest Row's PID for Each Unique RID in MySQL?

Mengambil Baris Terkini setiap Kumpulan Menggunakan MAX() dan GROUP BY

Pertimbangkan senario di mana anda mempunyai jadual MySQL dengan lajur seperti cap waktu, kos, rid, dsb. . Objektif anda adalah untuk mendapatkan semula pid baris terkini untuk setiap penyingkiran unik.

Anda mencuba ini menggunakan pertanyaan berikut:

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

Walau bagaimanapun, nilai pid yang dikembalikan tidak sejajar dengan cap masa maksimum. Ini kerana GROUP BY mempertimbangkan semua lajur dalam klausa SELECT, dan ia memilih baris padanan pertama untuk setiap kumpulan.

Untuk membetulkannya, kita perlu mengenal pasti penyingkiran dan cap masa maksimum bagi setiap kumpulan. Kita boleh melakukan ini menggunakan subquery:

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

Hasil pertanyaan ini akan kelihatan seperti ini:

rid | ts
-----|-----
1    | 2011-04-14 01:06:06
2    | 2011-04-14 01:05:41
3    | 2011-04-14 01:14:14
Salin selepas log masuk

Sekarang, kita boleh menyertai jadual asal dengan subquery ini, menggunakan rid dan cap masa, untuk mendapatkan semula nilai pid yang dikehendaki:

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

Hasil pertanyaan ini akan memberikan anda pid, kos, cap masa dan buang baris terbaharu untuk setiap penghapusan unik.

Atas ialah kandungan terperinci Bagaimana untuk Mengambil PID Baris Terkini untuk Setiap RID Unik dalam MySQL?. 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