Tukar Separa Teks Bukan Angka kepada Nombor untuk Pengisihan Pertanyaan MySQL
Dalam MySQL, mengisih lajur varchar berdasarkan nilai berangka yang dibenamkan boleh mencabar . Soalan ini menangani senario praktikal di mana lajur mengandungi pengecam dalam format "nombor-nama" dan perlu diisih berdasarkan komponen berangka.
Masalah:
Lajur mengandungi teks dalam format "nombor-nama," dengan komponen nombor dibenamkan dalam teks. Mengisih lajur menggunakan susunan aksara lalai menghasilkan urutan yang tidak tepat disebabkan oleh perbandingan aksara.
Penyelesaian:
Untuk menyelesaikannya, adalah perlu untuk menukar bukan -teks angka kepada nombor sebelum menyusun. Pertanyaan berikut boleh mencapai ini:
SELECT field,CONVERT(SUBSTRING_INDEX(field,'-',-1),UNSIGNED INTEGER) AS num FROM table ORDER BY num;
Penjelasan:
Pertimbangan Tambahan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyusun Lajur MySQL yang Mengandungi Rentetan 'nombor-nama' Secara Numerik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!