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);
SELECT id FROM table WHERE id in (8,2,5,9,7);
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");
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!