Rumah  >  Artikel  >  pangkalan data  >  Bagaimanakah saya boleh mengisih lajur VARCHAR yang mengandungi nombor dalam MySQL sebagai nilai angka sebenar?

Bagaimanakah saya boleh mengisih lajur VARCHAR yang mengandungi nombor dalam MySQL sebagai nilai angka sebenar?

Patricia Arquette
Patricia Arquetteasal
2024-10-29 22:20:29239semak imbas

How can I sort VARCHAR columns containing numbers in MySQL as true numeric values?

Isih Nombor Rentetan Varchar dalam MySQL

Apabila menguruskan data dalam pangkalan data hubungan, selalunya perlu mengisih nilai berdasarkan kandungan angkanya . Walau bagaimanapun, jika nilai berangka disimpan sebagai rentetan dalam lajur VARCHAR, MySQL mungkin tidak melakukan pengisihan dengan betul. Artikel ini meneroka penyelesaian untuk mengisih lajur VARCHAR yang mengandungi nombor sebagai nilai angka sebenar.

Masalah:

Bagaimanakah kita boleh mengisih lajur jenis VARCHAR yang menyimpan nilai angka sebagai rentetan, seperti '17.95', '199.95' dan '139.95', sebagai nombor sebenar dalam MySQL?

Penyelesaian:

Untuk mengisih rentetan VARCHAR yang mengandungi nombor sebagai nilai berangka, kita boleh menggunakan teknik berikut:

  • Darab lajur VARCHAR dengan 1 menggunakan ungkapan "string_column * 1".
<code class="sql">SELECT *
FROM tbl
ORDER BY string_column * 1</code>

Operasi ini mengeluarkan rentetan VARCHAR kepada jenis data berangka, membolehkan MySQL melakukan pengisihan dengan betul.

Faedah menggunakan * 1:

Melebihi mendayakan pengisihan berangka rentetan VARCHAR, mendarab dengan 1 menawarkan beberapa kelebihan lain:

  • Ketahanan: Ia boleh bertolak ansur dengan isu aliran bawah yang mungkin timbul semasa penuangan.
  • Toleransi: Ia berfungsi untuk lajur yang mengandungi kedua-dua data berangka dan bukan angka, mengabaikan bahagian bukan angka.
  • Pengendalian Alfanumerik: Ia mengekstrak bahagian berangka daripada rentetan abjad angka, seperti '123A', ' 124A' dan '125A'.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengisih lajur VARCHAR yang mengandungi nombor dalam MySQL sebagai nilai angka sebenar?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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