Rumah >pangkalan data >tutorial mysql >Bagaimana Mengisih Baris MySQL Secara Berangka Berdasarkan Pengecam Teks dengan Nombor Terbenam?

Bagaimana Mengisih Baris MySQL Secara Berangka Berdasarkan Pengecam Teks dengan Nombor Terbenam?

Patricia Arquette
Patricia Arquetteasal
2024-12-31 16:51:12728semak imbas

How to Sort MySQL Rows Numerically Based on Textual Identifiers with Embedded Numbers?

Mengekstrak Nilai Berangka daripada Pengecam Tekstual dalam MySQL

Mengisih lajur berasaskan teks dengan nilai angka bercampur dan bukan angka boleh menjadi mencabar. Senario biasa melibatkan lajur pengecam menggunakan format "nombor nama". Untuk mengutamakan susunan berangka, mengekstrak komponen berangka menjadi penting.

Untuk mencapai ini dalam pertanyaan MySQL, anda boleh menggunakan pendekatan berikut:

SELECT field, CONVERT(SUBSTRING_INDEX(field, '-', -1), UNSIGNED INTEGER) AS num
FROM table
ORDER BY num;

Pertanyaan ini melakukan langkah berikut:

  1. Ekstrak komponen angka: Menggunakan Fungsi SUBSTRING_INDEX, anda membahagi rentetan medan pada kejadian terakhir '-', mengasingkan bahagian berangka.
  2. Tukar kepada integer: Fungsi CONVERT menukar subrentetan angka yang diekstrak menjadi integer tidak bertanda , membenarkan pengisihan berangka.
  3. Pesan mengikut angka komponen: Klausa ORDER BY menyusun baris dalam tertib menaik berdasarkan nilai berangka yang ditukar.

Pendekatan ini boleh dipercayai walaupun bahagian nama pengecam tidak mengandungi sebarang nombor. Ia memisahkan komponen berangka dengan berkesan dan membolehkan pengisihan yang diingini. Dengan mengekstrak dan menukar bahagian angka, anda boleh menyusun baris dengan tepat mengikut nilai angkanya, tanpa mengira susunan aksara pengecam keseluruhan.

Atas ialah kandungan terperinci Bagaimana Mengisih Baris MySQL Secara Berangka Berdasarkan Pengecam Teks dengan Nombor Terbenam?. 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