Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih Rekod Terkini untuk Setiap Gabungan Kaedah dan ID dalam MySQL?

Bagaimana untuk Memilih Rekod Terkini untuk Setiap Gabungan Kaedah dan ID dalam MySQL?

Mary-Kate Olsen
Lepaskan: 2024-12-18 18:40:19
asal
227 orang telah melayarinya

How to Select the Latest Records for Each Method and ID Combination in MySQL?

Cara Mengambil Rekod Bertarikh Terkini daripada Jadual MySQL

Apabila menyimpan data sensitif masa dalam jadual MySQL, selalunya perlu untuk dapatkan semula rekod terkini untuk gabungan medan tertentu. Contoh berikut menunjukkan cara untuk mencapai ini apabila berurusan dengan jadual respons RPC yang menampilkan medan seperti cap masa, kaedah dan ID.

Soalan

Pertimbangkan jadual bernama rpc_responses dengan struktur berikut:

CREATE TABLE rpc_responses (
  timestamp DATE,
  method VARCHAR,
  id VARCHAR,
  response MEDIUMTEXT,
  PRIMARY KEY (timestamp, method, id)
);
Salin selepas log masuk

Memandangkan perkara berikut data:

timestamp method id response
2009-01-10 getThud 16 "....."
2009-01-10 getFoo 12 "....."
2009-01-10 getBar 12 "....."
2009-01-11 getFoo 12 "....."
2009-01-11 getBar 16 "....."

Keputusan yang Diingini

Dapatkan senarai jawapan terkini untuk semua gabungan kaedah dan id sedia ada:

timestamp method id response
2009-01-10 getThud 16 "....."
2009-01-10 getBar 12 "....."
2009-01-11 getFoo 12 "....."
2009-01-11 getBar 16 "....."

Jawapan

Untuk mencapai ini, gunakan perkara berikut pertanyaan:

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 dengan cekap mendapatkan semula hasil yang diingini tanpa memerlukan gabungan. Ia juga mengekalkan struktur baris yang diingini, menyediakan rekod yang berbeza untuk setiap gabungan unik kaedah dan id.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Rekod Terkini untuk Setiap Gabungan Kaedah dan ID 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