Mengisih Medan Varchar Secara Numerik dalam MySQL: Fungsi CAST
Dalam senario tertentu, medan varchar MySQL mungkin mengandungi nilai integer dengan sifar pendahuluan, menyebabkan pengisihan leksikografi terpesong daripada susunan berangka yang dikehendaki. Untuk menyelesaikan masalah ini, fungsi CAST menyediakan penyelesaian.
Isu:
Pertimbangkan jadual dengan medan bernama "nombor" jenis varchar, menyimpan nilai integer. Walaupun jenis datanya, "nombor" mengandungi nilai seperti "009" dan "042". Apabila diisih menggunakan pertanyaan berikut:
SELECT * FROM table ORDER BY number ASC
Hasilnya ialah:
number 009 042 9
Penyelesaian:
Untuk mengisih mengikut nilai berangka, MySQL menyediakan fungsi CAST. Dengan menghantar medan varchar ke INTEGER BERTANDA, sifar pendahuluan diabaikan, menghasilkan susunan berangka yang betul.
Pertanyaan yang diubah suai menggunakan fungsi CAST:
SELECT * FROM table ORDER BY CAST(number AS SIGNED INTEGER) ASC
Kini akan menghasilkan yang diingini pengisihan:
number 9 009 042
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengisih Medan VARCHAR Secara Numerik dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!