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
Lepaskan: 2024-12-31 16:51:12
asal
807 orang telah melayarinya

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;
Salin selepas log masuk

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