Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL 'Поръчай по' - правилно сортиране на букви и цифри

Хората използват различни трикове, за да направят това. Търсих в Google и открих, че някои резултати следват различни трикове. Разгледайте ги:

Редактиране:

Току-що добавих кода на всяка връзка за бъдещи посетители.

Алфа-цифрово сортиране в MySQL

Даден вход

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

Очакван изход

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

Запитване

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

Естествено сортиране в MySQL

Даден вход

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

Очакван изход

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

Запитване

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

Сортиране на числови стойности, смесени с буквено-цифрови стойности

Даден вход

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

Очакван изход

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

Запитване

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

Надявам се това да помогне



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ПОКАЖЕТЕ ТАБЛИЦИ в MySQL

  2. Как да стартирам MySQL с --skip-grant-tables?

  3. SQL CREATE TABLE Синтаксис – Изброени от СУБД

  4. Как ефективно да използвам MySQLDB SScursor?

  5. Регистрация на потребител и проверка на имейл PHP и MySQL