Rumah > pangkalan data > tutorial mysql > Bagaimanakah saya boleh menyusun Nombor VARCHAR sebagai Integer dalam MySQL?

Bagaimanakah saya boleh menyusun Nombor VARCHAR sebagai Integer dalam MySQL?

Barbara Streisand
Lepaskan: 2025-01-12 18:36:47
asal
192 orang telah melayarinya

How Can I Sort VARCHAR Numbers as Integers in MySQL?

MySQL: Mengisih Lajur VARCHAR sebagai Integer

Pangkalan data kadangkala menyimpan nombor sebagai rentetan (VARCHAR), selalunya disebabkan oleh sistem warisan atau kebergantungan luaran. Ini boleh menyebabkan hasil pengisihan yang salah apabila menggunakan perbandingan rentetan standard. Berikut ialah cara mengisih nombor berformat rentetan ini dengan betul dalam MySQL:

Penyelesaian Optimum: Penukaran Jenis Data

Pendekatan terbaik ialah mengubah jenis data lajur jadual kepada integer (INT, BIGINT, dll.). Ini memastikan pengisihan berangka yang betul dan mengelakkan isu masa depan.

Kaedah Alternatif (Apabila Perubahan Jenis Data Tidak Boleh Dilaksanakan):

  1. Penghantaran Eksplisit: Gunakan fungsi CAST() untuk menukar nilai VARCHAR kepada integer secara eksplisit sebelum mengisih:
<code class="language-sql">SELECT col FROM yourtable ORDER BY CAST(col AS UNSIGNED);</code>
Salin selepas log masuk

Ini memaksa MySQL untuk merawat nilai secara berangka semasa proses pengisihan. UNSIGNED menghalang tafsiran nombor negatif.

  1. Penukaran Tersirat: Tambahkan pemalar angka (seperti 0) untuk menukar nilai rentetan kepada nombor secara tersirat:
<code class="language-sql">SELECT col FROM yourtable ORDER BY col + 0;</code>
Salin selepas log masuk

MySQL akan cuba mentafsir rentetan sebagai nombor untuk operasi penambahan, mencetuskan penukaran tersirat.

  1. Gelagat Penukaran Rentetan-ke-Nombor MySQL: Ingat bahawa MySQL menukar rentetan kepada nombor dari kiri ke kanan. Hanya bahagian berangka awal rentetan dipertimbangkan.
String Value Integer Value
'1' 1
'ABC' 0
'123miles' 123
'3' 0

Aksara bukan angka akan menghasilkan nilai 0. Aksara bukan angka terkemuka akan menyebabkan keseluruhan penukaran gagal.

Atas ialah kandungan terperinci Bagaimanakah saya boleh menyusun Nombor VARCHAR sebagai Integer dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan