Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Mendapatkan Kembali Baris Terkini dengan Cekap untuk ID Yang Diberikan Berdasarkan Cap Masa?

Bagaimana untuk Mendapatkan Kembali Baris Terkini dengan Cekap untuk ID Yang Diberikan Berdasarkan Cap Masa?

Barbara Streisand
Lepaskan: 2025-01-01 10:37:16
asal
575 orang telah melayarinya

How to Efficiently Retrieve the Latest Row for a Given ID Based on Timestamps?

Mendapatkan semula Baris Terkini untuk ID Tertentu

Dalam jadual yang mengandungi berbilang baris dengan ID yang sama, bagaimana anda boleh mengekstrak dengan cekap hanya baris terbaharu berdasarkan cap masa? Pertimbangkan jadual contoh:

| id | signin              | signout |
+----+---------------------+---------+
|  1 | 2011-12-12 09:27:24 | NULL    |
|  1 | 2011-12-13 09:27:31 | NULL    |
|  1 | 2011-12-14 09:27:34 | NULL    |
|  2 | 2011-12-14 09:28:21 | NULL    |
+----+---------------------+---------+
Salin selepas log masuk

Untuk mencapai matlamat ini, anda boleh menggunakan fungsi agregat dan subkueri.

Menggunakan Aggregate MAX()

The fungsi MAX() agregat boleh digunakan untuk menentukan cap masa log masuk terkini untuk setiap ID. Dengan mengumpulkan hasil mengikut lajur id, anda boleh mengenal pasti cap masa log masuk maksimum untuk setiap ID unik.

SELECT 
 id, 
 MAX(signin) AS most_recent_signin
FROM tbl
GROUP BY id
Salin selepas log masuk

Mendapatkan Kembali Baris Lengkap

Untuk mendapatkan semula keseluruhan baris yang sepadan dengan log masuk terbaharu untuk ID tertentu, gunakan INNER JOIN terhadap subkueri yang mengembalikan cap masa log masuk maksimum setiap ID.

SELECT 
  tbl.id,
  signin,
  signout
FROM tbl
  INNER JOIN (
    SELECT id, MAX(signin) AS maxsign FROM tbl GROUP BY id
  ) ms ON tbl.id = ms.id AND signin = maxsign
WHERE tbl.id=1
Salin selepas log masuk

Pertanyaan ini akan mengembalikan rekod terkini yang lengkap dengan>

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Kembali Baris Terkini dengan Cekap untuk ID Yang Diberikan Berdasarkan Cap Masa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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