Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL 'Order By' - menyortir alfanumerik dengan benar

Orang menggunakan trik yang berbeda untuk melakukan ini. Saya mencari di Google dan menemukan beberapa hasil masing-masing mengikuti trik yang berbeda. Lihat mereka:

Sunting:

Saya baru saja menambahkan kode setiap tautan untuk pengunjung mendatang.

Penyortiran Alfa Numerik di MySQL

Masukan yang diberikan

1A 1a 10A 9B 21C 1C 1D

Keluaran yang diharapkan

1A 1C 1D 1a 9B 10A 21C

Kueri

Bin Way
===================================
SELECT 
tbl_column, 
BIN(tbl_column) AS binray_not_needed_column
FROM db_table
ORDER BY binray_not_needed_column ASC , tbl_column ASC

-----------------------

Cast Way
===================================
SELECT 
tbl_column, 
CAST(tbl_column as SIGNED) AS casted_column
FROM db_table
ORDER BY casted_column ASC , tbl_column ASC

Penyortiran Alami di MySQL

Masukan yang diberikan

Table: sorting_test
 -------------------------- -------------
| alphanumeric VARCHAR(75) | integer INT |
 -------------------------- -------------
| test1                    | 1           |
| test12                   | 2           |
| test13                   | 3           |
| test2                    | 4           |
| test3                    | 5           |
 -------------------------- -------------

Keluaran yang Diharapkan

 -------------------------- -------------
| alphanumeric VARCHAR(75) | integer INT |
 -------------------------- -------------
| test1                    | 1           |
| test2                    | 4           |
| test3                    | 5           |
| test12                   | 2           |
| test13                   | 3           |
 -------------------------- -------------

Kueri

SELECT alphanumeric, integer
       FROM sorting_test
       ORDER BY LENGTH(alphanumeric), alphanumeric  

Penyortiran nilai numerik yang dicampur dengan nilai alfanumerik

Masukan yang diberikan

2a, 12, 5b, 5a, 10, 11, 1, 4b

Keluaran yang Diharapkan

1, 2a, 4b, 5a, 5b, 10, 11, 12

Kueri

SELECT version
FROM version_sorting
ORDER BY CAST(version AS UNSIGNED), version;

Semoga membantu



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kinerja MySQL DigitalOcean Terbaik – ScaleGrid vs. Database yang Dikelola DigitalOcean

  2. Cara Mendapatkan Nama Bulan Pendek dari Tanggal di MySQL

  3. Beban Kerja Database OLTP/Analytics Hibrida:Mereplikasi Data MySQL ke ClickHouse

  4. MySQL Daftar Semua Prosedur

  5. PHP menampilkan gambar BLOB dari MySQL