Rumah >pangkalan data >tutorial mysql >Bagaimana Memilih 3 Rekod Terkini dengan Nilai Unik dalam Lajur Tertentu?

Bagaimana Memilih 3 Rekod Terkini dengan Nilai Unik dalam Lajur Tertentu?

Susan Sarandon
Susan Sarandonasal
2024-12-02 12:06:18639semak imbas

How to Select the 3 Most Recent Records with Unique Values in a Specific Column?

Cara Memilih 3 Rekod Terkini dengan Nilai Yang Berbeza untuk Lajur Tertentu

Memilih rekod terkini untuk jadual tertentu ialah operasi biasa dalam pangkalan data. Walau bagaimanapun, ia boleh menjadi lebih kompleks apabila anda ingin memastikan bahawa nilai untuk lajur tertentu adalah berbeza, menghapuskan pendua. Tugasan ini memerlukan pendekatan yang lebih bernuansa.

Dalam senario yang diberikan, pengguna cuba memilih tiga rekod terbaharu daripada jadual di mana nilai dalam lajur pengecam lain adalah berbeza. Percubaan awal, menggunakan SELECT * FROM table GROUP BY (otheridentifier) ​​ORDER BY time DESC LIMIT 3, gagal menghasilkan hasil yang diingini kerana pengumpulan lebih diutamakan daripada pesanan dalam pernyataan SQL.

Untuk mengatasi had ini, a pertanyaan yang lebih terperinci diperlukan:

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

Pertanyaan ini berfungsi dengan melaksanakan perkara berikut langkah:

  1. Ia menggunakan subkueri untuk mendapatkan id rekod terkini bagi setiap nilai pengecam lain yang berbeza.
  2. Pertanyaan utama kemudiannya mengehadkan pemilihan kepada rekod dengan nilai id yang sepadan .
  3. Akhir sekali, keputusan disusun mengikut urutan masa menurun dan terhad kepada tiga teratas rekod.

Menggunakan pendekatan ini, pengguna boleh memilih tiga rekod terbaharu dengan nilai yang berbeza dengan berkesan untuk lajur pengecam lain, menghasilkan hasil yang diingini.

Atas ialah kandungan terperinci Bagaimana Memilih 3 Rekod Terkini dengan Nilai Unik dalam Lajur Tertentu?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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