Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Memesan dengan Nombor dan Meletakkan NULL Terakhir dalam MySQL?

Bagaimana untuk Memesan dengan Nombor dan Meletakkan NULL Terakhir dalam MySQL?

Susan Sarandon
Susan Sarandonasal
2024-12-27 20:18:10304semak imbas

How to Order by a Number and Place NULLs Last in MySQL?

MySQL: Memesan dengan Nombor dan Nulls Last

Dalam pertanyaan SQL, memesan data mengikut medan angka boleh menjadi mudah. Walau bagaimanapun, mengurus nilai nol dalam senario sedemikian memerlukan pertimbangan yang teliti. Dalam MySQL, secara lalai, nilai nol dianggap sebagai 0 apabila membuat pesanan dengan ASC atau DESC, yang boleh membawa kepada hasil yang tidak diingini.

Untuk menangani isu ini, MySQL menawarkan sintaks yang tidak konvensional untuk mengutamakan nilai nol terakhir dalam pesanan klausa. Dengan meletakkan tanda tolak (-) sebelum nama lajur dan menyongsangkan tertib (ASC kepada DESC atau sebaliknya), anda boleh membalikkan gelagat pengisihan dengan berkesan untuk nol.

Sebagai contoh, jika anda ingin mengisih a lajur bernama 'kedudukan' dalam tertib menaik (kecuali untuk nilai nol) dan kemudian memutuskan hubungan dengan 'id' dalam tertib menurun, anda akan menggunakan yang berikut sintaks:

SELECT * FROM tablename WHERE visible=1 ORDER BY -position DESC, id DESC

Penyusunan ini akan menghasilkan urutan berikut:

1, 2, 3, 4, NULL, NULL, NULL

Pada asasnya, sintaks ini menyongsangkan pengisihan untuk lajur 'kedudukan', meletakkan nilai nol pada masa yang lama sambil mengekalkan susunan yang diingini untuk nilai bukan nol.

Ingat bahawa sintaks ini ialah tidak berdokumen dan mungkin tidak disokong dalam semua versi MySQL. Selain itu, sentiasa menjadi amalan yang baik untuk menyemak dokumentasi dengan teliti sebelum melaksanakan sebarang teknik pengisihan lanjutan dalam pertanyaan anda.

Atas ialah kandungan terperinci Bagaimana untuk Memesan dengan Nombor dan Meletakkan NULL Terakhir dalam MySQL?. 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