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
Penjelasan:
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!