Menukar Separa Teks Bukan Angka kepada Nombor untuk Isih dalam MySQL
Dalam MySQL, adalah mungkin untuk menukar teks yang mengandungi nombor kepada nilai angka untuk tujuan menyusun. Pertimbangkan senario di mana anda mempunyai lajur jadual dengan pengecam dalam format "nombor-nama" dan lajur diisih mengikut abjad, mengakibatkan susunan yang salah berdasarkan komponen angka.
Untuk menangani isu ini, satu boleh menggunakan gabungan manipulasi rentetan dan fungsi penukaran untuk mengekstrak dan menukar bahagian berangka teks. Ini melibatkan penggunaan fungsi SUBSTRING_INDEX untuk mengekstrak bahagian terakhir rentetan selepas tanda sempang '-' dan kemudian menukarnya kepada integer tidak bertanda (UNSIGNED INTEGER) menggunakan fungsi CONVERT. Di bawah ialah pertanyaan yang menyelesaikannya:
SELECT field,CONVERT(SUBSTRING_INDEX(field,'-',-1),UNSIGNED INTEGER) AS num FROM table ORDER BY num;
Pertanyaan ini mengekstrak bahagian berangka lajur "medan" selepas tanda sempang, menukarnya kepada integer dan menyerahkannya kepada lajur "num". Jadual kemudian diisih mengikut lajur "bilangan", memastikan susunan angka yang betul bagi baris dengan awalan nama yang sama.
Adalah penting untuk ambil perhatian bahawa penyelesaian ini menganggap bahawa bahagian berangka pengecam sentiasa ada. dan mempunyai format yang konsisten. Jika nama mungkin tidak mengandungi nombor, semakan atau pengubahsuaian tambahan mungkin diperlukan untuk mengendalikan kes sedemikian.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Lajur Jadual MySQL dengan Nilai Teks Separa Angka dengan Betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!