Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memilih 3 Rekod Terbaharu Terbaharu daripada Jadual?

Bagaimana untuk Memilih 3 Rekod Terbaharu Terbaharu daripada Jadual?

Linda Hamilton
Lepaskan: 2024-12-01 04:59:09
asal
709 orang telah melayarinya

How to Select the 3 Most Recent Distinct Records from a Table?

Memilih Rekod Terbaharu Terbaharu

Pertanyaan anda bertujuan untuk mendapatkan semula tiga rekod terbaharu daripada jadual di mana nilai dalam lajur pengecam lain adalah berbeza . Walau bagaimanapun, pendekatan semasa menggunakan GROUP BY dan LIMIT membuahkan hasil yang tidak dijangka.

Mari kita periksa masalahnya. Operasi GROUP BY menggabungkan baris dengan pengecam lain yang sama. Memandangkan pesanan berlaku selepas pengumpulan, rekod terkini setiap kumpulan tidak semestinya dipilih.

Penyelesaian dengan Subkueri

Untuk menangani isu ini, subkueri boleh digunakan untuk mengenal pasti rekod terkini untuk setiap pengecam lain yang berbeza. Maklumat ini kemudiannya digunakan dalam pertanyaan utama untuk memilih rekod yang dikehendaki.

Pertanyaan berikut mencapai ini:

SELECT *
FROM `table`
WHERE `id` = (
    SELECT `id`
    FROM `table` as `alt`
    WHERE `alt`.`otheridentifier` = `table`.`otheridentifier`
    ORDER BY `time` DESC
    LIMIT 1
)
ORDER BY `time` DESC
LIMIT 3
Salin selepas log masuk

Penjelasan:

  • Subkueri memperoleh id rekod terkini untuk setiap pengecam unik yang lain.
  • Yang utama pertanyaan kemudian menggunakan id ini untuk mendapatkan semula rekod yang sepadan daripada jadual asal.
  • Rekod disusun mengikut masa menurun, dan tiga yang terbaharu dihadkan oleh LIMIT 3.

Menggunakan pendekatan ini, pertanyaan akan mengembalikan hasil yang dijangkakan: id 5, 4 dan 2, mewakili tiga rekod terbaharu dengan pengecam lain yang berbeza nilai.

Atas ialah kandungan terperinci Bagaimana untuk Memilih 3 Rekod Terbaharu Terbaharu daripada Jadual?. 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