MySQL естественная сортировка данных

У меня есть данные в следующем формате:

AC-1234/12
AC-4321/12
ANA-4532/12
231
IHC-543/12
F-125/12
F-345/12
ds-234/12

Я хочу сделать естественную сортировку по этому вопросу в MySQL.

результат должен быть таким:

AC-1234/12
AC-4321/12
ANA-4532/12
F-125/12
F-345/12
ds-234/12
231

попробовал некоторые из естественных методов сортировки mysql, но у меня не получилось. Будем очень благодарны.

Я попробовал это:

select column 
from table_name 
Order By LENGTH(column), column

2 ответа

Вы можете использовать CASE Выражение для этого так:

SELECT column
FROM  Tablenametemp 
ORDER BY
   CASE 
     WHEN column REGEXP '^-?[0-9]+$' THEN 1 --If column is number 
     ELSE 0 
   END, column

Вот демонстрация SQL скрипки

У меня есть похожие проблемы, вы, ребята, проверите мои?

Заказ MySQL по алфавиту не работает

и моя sql скрипка

http://www.sqlfiddle.com/

Другие вопросы по тегам