Rumah >pangkalan data >tutorial mysql >Bagaimana Saya Boleh Isih Keputusan MySQL UNION mengikut Kumpulan Menggunakan ORDER BY?

Bagaimana Saya Boleh Isih Keputusan MySQL UNION mengikut Kumpulan Menggunakan ORDER BY?

Barbara Streisand
Barbara Streisandasal
2025-01-11 11:46:42390semak imbas

How Can I Sort MySQL UNION Results by Groups Using ORDER BY?

Menguasai MySQL UNION: Mengisih Keputusan Dalam Kumpulan Menggunakan ORDER BY

Pengendali UNION MySQL menggabungkan hasil daripada berbilang pernyataan SELECT. Walau bagaimanapun, memesan hasil gabungan ini boleh menjadi rumit, terutamanya apabila anda perlu mengisih dalam setiap kumpulan individu. Panduan ini menunjukkan kaedah bijak menggunakan pseudo-lajur untuk mencapai matlamat ini.

Penyelesaian melibatkan langkah berikut:

  1. Perkenalkan Pseudo-Column: Tambahkan lajur (kami akan memanggilnya 'Kedudukan') pada setiap pernyataan SELECT individu anda. Lajur ini bertindak sebagai pengecam kumpulan, memberikan nilai unik kepada setiap kumpulan.

  2. Bina UNION: Gabungkan penyataan SELECT anda yang diubah suai menggunakan UNION ALL (atau UNION jika anda perlu mengalih keluar pendua).

  3. Pesan dengan Pertanyaan Luar: Balut UNION anda dalam pernyataan SELECT luar. Gunakan lajur 'Kedudukan' sebagai kriteria pengisihan utama dalam fasal ORDER BY pertanyaan luar ini.

  4. Perhalusi Isih: Selepas mengisih mengikut 'Kedudukan' (kumpulan), tambah kriteria pengisihan sekunder anda (cth., 'id' atau 'add_date') untuk menyusun lagi keputusan dalam setiap kumpulan.

Contoh Ilustrasi:

Katakan anda mempunyai jadual bernama 'jadual' dengan lajur 'id' dan 'add_date'. Pertanyaan berikut menunjukkan teknik:

<code class="language-sql">SELECT *
FROM (
    SELECT 1 AS Rank, id, add_date FROM table
    UNION ALL
    SELECT 2 AS Rank, id, add_date FROM table WHERE distance < 10  -- Example condition for a group
) AS combined_results
ORDER BY Rank, id, add_date;</code>

Pertanyaan ini menambah lajur 'Kedudukan' (1 untuk kumpulan pertama, 2 untuk kedua), kemudian menggunakan SELECT luar untuk mengisih dahulu mengikut 'Kedudukan' (menghimpunkan hasil) dan kemudian dengan 'id' dan 'add_date' dalam setiap kumpulan. Ini memastikan susunan yang betul dalam setiap subset data yang dijana oleh pernyataan SELECT individu. Ingat untuk menggantikan table dan syarat dalam subkueri dengan jadual sebenar anda dan logik penapisan.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Isih Keputusan MySQL UNION mengikut Kumpulan Menggunakan ORDER BY?. 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