Rumah >pangkalan data >tutorial mysql >Bagaimanakah Saya Boleh Memesan Nombor yang Disimpan sebagai Rentetan dengan betul dalam MySQL?
Disebabkan pelbagai batasan, nombor kadangkala disimpan dalam jenis data VARCHAR dalam pangkalan data MySQL. Walau bagaimanapun, apabila mengisih data berdasarkan nilai ini, aksara diutamakan daripada nilai angka, menyebabkan nilai angka tidak diisih dengan betul.
Untuk menyelesaikan masalah ini, anda boleh menukar nilai rentetan secara eksplisit kepada integer menggunakan sintaks berikut:
<code class="language-sql">SELECT col FROM yourtable ORDER BY CAST(col AS UNSIGNED)</code>
Penukaran ini memaksa pangkalan data untuk menganggap nilai sebagai integer, memastikan susunan berangka yang betul.
Sebagai alternatif, anda boleh menggunakan operasi matematik yang secara tersirat menukar rentetan kepada integer, contohnya:
<code class="language-sql">SELECT col FROM yourtable ORDER BY col + 0</code>
Dalam kes ini, menambah 0 memaksa MySQL untuk melakukan penukaran berangka.
Sila ambil perhatian bahawa MySQL menukar rentetan dari kiri ke kanan. Rentetan yang mengandungi atau bermula dengan aksara bukan angka ditukar kepada 0, menyebabkan pengisihan yang salah. Oleh itu, anda mesti memastikan bahawa nilai rentetan mengandungi aksara angka sahaja.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memesan Nombor yang Disimpan sebagai Rentetan dengan betul dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!