Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memilih Baris dengan ID Versi Tertinggi untuk Setiap ID dalam MySQL?

Bagaimana untuk Memilih Baris dengan ID Versi Tertinggi untuk Setiap ID dalam MySQL?

Linda Hamilton
Linda Hamiltonasal
2024-11-29 01:12:10815semak imbas

How to Select the Row with the Highest Version ID for Each ID in MySQL?

MySQL: Mengawal Pemilihan Baris yang Dikembalikan oleh Kumpulan

Dalam MySQL, mendapatkan semula baris dengan versi tertinggi untuk setiap ID boleh tugas yang kompleks. Walau bagaimanapun, terdapat pelbagai pendekatan yang boleh digunakan untuk mencapai objektif ini.

Satu kaedah ialah menggunakan subkueri:

SELECT *
FROM (SELECT * FROM table ORDER BY version_id DESC) t1
GROUP BY t1.id

Subkueri ini mengisih baris dalam susunan menurun mengikut ID versi untuk setiap ID. Selepas itu, pertanyaan utama mengumpulkan baris yang diisih mengikut ID. Pendekatan ini mencipta jadual sementara dalam ingatan, tetapi ia boleh menjadi cekap jika indeks wujud pada lajur (id, version_id).

Strategi lain melibatkan pertanyaan bersarang:

SELECT *
FROM (SELECT id, max(version_id) as version_id FROM table GROUP BY id) t1
INNER JOIN table t2 on t2.id=t1.id and t1.version_id=t2.version_id

Ini pertanyaan mengira ID versi maksimum untuk setiap ID dalam subkueri. Pertanyaan utama kemudiannya bergabung dengan subquery dengan jadual asal menggunakan lajur ID dan version_id untuk mendapatkan semula baris dengan ID versi maksimum.

Kedua-dua kaedah menyediakan penyelesaian yang berkesan untuk memilih baris dengan ID versi tertinggi untuk setiap ID . Pendekatan yang paling sesuai bergantung pada keperluan khusus dan pertimbangan prestasi aplikasi.

Atas ialah kandungan terperinci Bagaimana untuk Memilih Baris dengan ID Versi Tertinggi untuk Setiap ID dalam MySQL?. 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