sql >> Database >  >> RDS >> Mysql

MySQL 'Order By' - alfanumeriek correct sorteren

Mensen gebruiken hiervoor verschillende trucs. Ik heb gegoogeld en ontdek dat sommige resultaten elk verschillende trucs volgen. Bekijk ze eens:

Bewerken:

Ik heb zojuist de code van elke link toegevoegd voor toekomstige bezoekers.

Alfanumeriek sorteren in MySQL

Gegeven input

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

Verwachte uitvoer

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

Zoekopdracht

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

Natuurlijk sorteren in MySQL

Gegeven input

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

Verwachte uitvoer

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

Zoekopdracht

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

Sorteren van numerieke waarden gemengd met alfanumerieke waarden

Gegeven input

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

Verwachte uitvoer

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

Zoekopdracht

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

Ik hoop dat dit helpt



  1. Kan UPDATE met OUTPUT-component niet gebruiken wanneer een trigger op de tafel staat

  2. Hoe maak je een back-up en herstel je een database als een kopie op dezelfde server?

  3. Een overzicht van logische replicatie in PostgreSQL

  4. Spaarzame kolommen in SQL Server:impact op tijd en ruimte