Rumah > pangkalan data > tutorial mysql > Adakah SQL UNION SEMUA Mengekalkan Susunan Baris?

Adakah SQL UNION SEMUA Mengekalkan Susunan Baris?

Linda Hamilton
Lepaskan: 2024-12-24 09:06:15
asal
482 orang telah melayarinya

Does SQL UNION ALL Preserve the Order of Rows?

Pemeliharaan Pesanan dalam SQL UNION ALL Queries

Dalam SQL, UNION ALL digunakan untuk menggabungkan hasil berbilang pernyataan SELECT menjadi satu hasil ditetapkan. Tidak seperti pengendali UNION, UNION ALL tidak menghapuskan baris pendua. Walau bagaimanapun, adakah ia menjamin susunan set data yang terhasil?

Jawapan ringkasnya ialah tidak. UNION ALL tidak secara inheren mengekalkan susunan keputusan. Susunan penyataan SELECT dilaksanakan dan baris dikembalikan adalah khusus pelaksanaan dan boleh berbeza antara pangkalan data malah dalam versi berbeza pangkalan data yang sama.

Untuk menggambarkan ini, pertimbangkan pertanyaan berikut:

SELECT 'O'
UNION ALL
SELECT 'R'
UNION ALL
SELECT 'D'
UNION ALL
SELECT 'E'
UNION ALL
SELECT 'R'
Salin selepas log masuk

Walaupun dalam beberapa kes, set keputusan mungkin muncul dalam urutan "O-R-D-E-R", tidak ada menjamin bahawa ini akan sentiasa berlaku.

Untuk memastikan susunan tertentu dalam keputusan, anda mesti menggunakan klausa ORDER BY secara eksplisit selepas operator UNION ALL. Sebagai contoh, pertanyaan berikut akan menyusun keputusan dalam susunan abjad menaik:

SELECT 'O'
UNION ALL
SELECT 'R'
UNION ALL
SELECT 'D'
UNION ALL
SELECT 'E'
UNION ALL
SELECT 'R'
ORDER BY 1
Salin selepas log masuk

Dengan menambahkan lajur SortOrder pada setiap pernyataan SELECT, anda juga boleh mengawal susunan keputusan berdasarkan kriteria tersuai:

SELECT 'O', 1 SortOrder
UNION ALL
SELECT 'R', 2
UNION ALL
SELECT 'D', 3
UNION ALL
SELECT 'E', 4
UNION ALL
SELECT 'R', 5
ORDER BY SortOrder
Salin selepas log masuk

Oleh itu, adalah penting untuk menggunakan ORDER BY apabila pesanan khusus keputusan diperlukan. Jika tidak, susunan set hasil mungkin berbeza-beza tanpa diduga.

Atas ialah kandungan terperinci Adakah SQL UNION SEMUA Mengekalkan Susunan Baris?. 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