sql >> Databáze >  >> RDS >> Mysql

MySQL 'Order By' - správné alfanumerické řazení

Lidé k tomu používají různé triky. Vyhledal jsem Google a zjistil jsem nějaké výsledky, každý podle jiných triků. Podívejte se na ně:

Upravit:

Právě jsem přidal kód každého odkazu pro budoucí návštěvníky.

Alfa číselné řazení v MySQL

Zadaný vstup

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

Očekávaný výstup

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

Dotaz

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

Přirozené řazení v MySQL

Zadaný vstup

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

Očekávaný výstup

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

Dotaz

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

Řazení číselných hodnot smíchaných s alfanumerické hodnoty

Zadaný vstup

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

Očekávaný výstup

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

Dotaz

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

Doufám, že to pomůže



  1. Hledání textu v uložené proceduře na serveru SQL

  2. Rozdělení hodnot oddělených čárkami v Oracle

  3. Jak funguje funkce SUBSTR() v MySQL

  4. Jak povolit INNODB v mysql