Memelihara Nilai Null dalam Pesanan MySQL
Dalam MySQL, memesan data dengan nilai nol boleh memberikan cabaran, kerana null dianggap sebagai 0 oleh lalai. Ini boleh membawa kepada tingkah laku pengisihan yang tidak diingini di mana nilai nol muncul sebelum nilai bukan nol. Untuk menangani isu ini, kami boleh menggunakan sintaks yang kurang dikenali untuk memaksa nilai nol muncul terakhir dalam hasil yang diisih.
Menterbalikkan Isih Nol
MySQL menawarkan tidak berdokumen sintaks yang membolehkan untuk membalikkan susunan pengisihan nilai nol. Dengan memberi awalan pada nama lajur dengan tanda tolak (-) dan menukar ASC kepada DESC, kami boleh mengarahkan MySQL untuk menganggap null sebagai nilai tertinggi dalam susunan isihan.
Sebagai contoh, pertimbangkan klausa ORDER BY berikut. :
ORDER BY -position DESC, id DESC
Klausa ini akan mengisih lajur kedudukan dalam tertib menurun, dengan nilai nol muncul terakhir. Lajur id masih akan diisih dalam tertib menurun.
Contoh
Andaikan kita mempunyai jadual dengan data berikut:
| position | id | |---|---| | null | 10 | | null | 11 | | null | 12 | | 1 | 1 | | 2 | 2 | | 3 | 3 | | 4 | 4 |
Menggunakan klausa ORDER BY tradisional (kedudukan ASC, id DESC), hasilnya akan disusun sebagai berikut:
| position | id | |---|---| | 1 | 1 | | 2 | 2 | | 3 | 3 | | 4 | 4 | | null | 12 | | null | 11 | | null | 10 |
Walau bagaimanapun, dengan menggunakan sintaks pengisihan nol terbalik (-posisi DESC, id DESC), kita boleh mencapai susunan yang dikehendaki di mana nilai nol muncul terakhir:
| position | id | |---|---| | 1 | 1 | | 2 | 2 | | 3 | 3 | | 4 | 4 | | null | 10 | | null | 11 | | null | 12 |
Nota:
Teknik ini tidak berdokumen dan mungkin tidak disokong dalam semua versi MySQL. Rujuk dokumentasi MySQL untuk versi khusus anda untuk memastikan keserasian.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjadikan Nilai NULL Terlihat Terakhir Apabila Memesan Data dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!