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!