Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengisih Data Abjad Angka dengan betul dalam Klausa `ORDER BY` MySQL?
Dalam MySQL, klausa 'Order By' mengisih data berdasarkan nilai lajur yang ditentukan. Walau bagaimanapun, apabila berurusan dengan data alfanumerik, kaedah pengisihan lalai mengutamakan digit pertama, yang membawa kepada susunan yang salah.
Sebagai contoh, jika kita mempunyai data berikut:
1 2 3 4 5 6 7 8 9 10 11 12
Dan kami melaksanakan pertanyaan:
select * from table order by xxxxx asc
Hasilnya akan diisih seperti berikut:
1 10 11 12 2 3 4 5 6 7 8 9
Ini kerana susunan ditentukan oleh digit pertama, tanpa mengira aksara berikutnya.
Untuk mengisih data abjad angka dengan betul, kita boleh menggunakan pelbagai helah:
Isih Numerik Alpha Menggunakan Cara Bin:
SELECT tbl_column, BIN(tbl_column) AS binray_not_needed_column FROM db_table ORDER BY binray_not_needed_column ASC , tbl_column ASC
Isih Semulajadi:
SELECT alphanumeric, integer FROM sorting_test ORDER BY LENGTH(alphanumeric), alphanumeric
Isih Nilai Angka Bercampur dengan Nilai Alfanumerik:
SELECT version FROM version_sorting ORDER BY CAST(version AS UNSIGNED), version;
Dengan menggunakan helah ini, kami boleh memastikan data abjad angka diisih dengan betul, mengekalkan susunan item yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Data Abjad Angka dengan betul dalam Klausa `ORDER BY` MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!