Bagaimana untuk Mendapatkan Keputusan Pertanyaan SQL dalam Susunan Dipratentukan Tanpa Menggunakan ORDER BY?

DDD
Lepaskan: 2024-10-30 04:24:02
asal
234 orang telah melayarinya

How to Retrieve SQL Query Results in a Predefined Order Without Using ORDER BY?

Memulangkan Keputusan Pertanyaan dalam Susunan Dipratentukan

Dalam SQL, lazimnya mencabar untuk mendapatkan kembali hasil pertanyaan dalam susunan tertentu melainkan dinyatakan menggunakan ORDER OLEH klausa. Walau bagaimanapun, dalam sesetengah senario, klausa ORDER BY mungkin tidak terpakai, seperti semasa cuba mendapatkan semula data dalam susunan yang telah ditetapkan semata-mata berdasarkan nilai medan tertentu.

Perbincangan baru-baru ini membawa senario di mana ia berada. ingin memilih ID (7, 2, 5, 9, dan 8) dan mendapatkannya dalam susunan yang tepat tanpa bergantung pada sebarang kriteria tambahan. Pertanyaan berikut kedua-duanya mengembalikan hasil dalam susunan yang tidak dapat diramalkan:

SELECT id FROM table WHERE id in (7,2,5,9,8);
Salin selepas log masuk
SELECT id FROM table WHERE id in (8,2,5,9,7);
Salin selepas log masuk

Penyelesaian novel ditemui melalui entri blog yang menangani isu ini dengan elegan:

SELECT id FROM table WHERE id in (7,2,5,9,8) 
ORDER BY FIND_IN_SET(id,"7,2,5,9,8");
Salin selepas log masuk

SET_DAFTAR_MENCARI fungsi digunakan untuk mengembalikan kedudukan nilai tertentu dalam set tertentu. Sebagai contoh, id 7 mempunyai kedudukan 1, id 2 mempunyai kedudukan 2, dan seterusnya.

Apabila menggunakan klausa ORDER BY dengan FIND_IN_SET, pernyataan ORDER BY memahami kedudukan dan menyusun keputusan dengan berkesan berdasarkan nilai yang ditetapkan. Penyelesaian ini memanfaatkan mekanisme dalaman dalam MySQL untuk mencapai susunan yang telah ditetapkan yang dikehendaki.

Perlu diperhatikan bahawa teknik ini boleh menjadi alternatif yang berharga apabila klausa ORDER BY tidak boleh digunakan untuk menentukan susunan yang dikehendaki.

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Keputusan Pertanyaan SQL dalam Susunan Dipratentukan Tanpa Menggunakan ORDER BY?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan