Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Isih Hasil Pertanyaan MySQL Gabungan daripada UNION Menggunakan Lajur Kedudukan?

Bagaimanakah Saya Boleh Isih Hasil Pertanyaan MySQL Gabungan daripada UNION Menggunakan Lajur Kedudukan?

Susan Sarandon
Lepaskan: 2025-01-11 11:47:43
asal
627 orang telah melayarinya

How Can I Sort Combined MySQL Query Results from UNION Using a Rank Column?

Penggunaan gabungan UNION dan ORDER BY dalam pertanyaan MySQL untuk mencapai pengumpulan hasil tersusun

Dalam MySQL, kami boleh menggabungkan berbilang pertanyaan menggunakan pengendali UNION untuk menggabungkan keputusannya. Apabila memproses pertanyaan sedemikian, adalah berfaedah untuk mengisih hasil gabungan dengan cara tertentu.

Andaikan anda ingin mengekstrak jenis rekod yang berbeza daripada satu jadual berdasarkan jarak dari lokasi. Katakan anda mempunyai tiga pertanyaan berikut:

<code class="language-sql">SELECT id, add_date
FROM Table
WHERE distance = 0;

SELECT id, add_date
FROM Table
WHERE distance < 5;

SELECT id, add_date
FROM Table
WHERE distance BETWEEN 5 AND 15;</code>
Salin selepas log masuk

Selepas menggabungkan pertanyaan ini menggunakan UNION, anda mungkin mahu mengisih hasil di bawah setiap tajuk, seperti "Hasil tepat", "Hasil dalam jarak 5 kilometer", dsb.

Untuk melakukan ini, kita boleh menggunakan lajur pseudo yang dipanggil "Kedudukan" untuk setiap pernyataan SELECT. Lajur ini akan mengandungi kedudukan setiap rekod dalam kumpulan khususnya supaya kami boleh mengisih mengikutnya sebelum menggunakan sebarang kriteria pengisihan lain.

Berikut ialah contoh cara untuk mencapai ini:

<code class="language-sql">SELECT *
FROM (
    SELECT 1 AS Rank, id, add_date
    FROM Table
    WHERE distance = 0
    UNION ALL
    SELECT 2 AS Rank, id, add_date
    FROM Table
    WHERE distance < 5
    UNION ALL
    SELECT 3 AS Rank, id, add_date
    FROM Table
    WHERE distance BETWEEN 5 AND 15
) AS combined_results
ORDER BY Rank, id, add_date;</code>
Salin selepas log masuk

Dalam pertanyaan ini, hasil carian akan diisih terlebih dahulu mengikut lajur "Kedudukan", yang akan mengumpulkan rekod berdasarkan jenis carian (Tepat, Dalam 5 km atau Dalam 5-15 km). Dalam setiap kumpulan, rekod akan diisih mengikut "id" dan "add_date".

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Hasil Pertanyaan MySQL Gabungan daripada UNION Menggunakan Lajur Kedudukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan