@OrdeO
just......newbie

Как исправить сортировку в MySql?

Есть колонка, где значения буква + какая-то цифра, буква всегда 'D' цифры идут по возрастанию. Столкнулся с тем, что сортировка отрабатывает некорректно, как поправить?
607e3cb41a5b9708231295.png
  • Вопрос задан
  • 87 просмотров
Решения вопроса 2
Yunique33
@Yunique33
SELECT CAST(SUBSTRING_INDEX(column, 'D', -1) as UNSIGNED) AS col
FROM table
ORDER BY col;
Ответ написан
@Akina
Сетевой и системный админ, SQL-программист.
У SUBSTRING_INDEX накладные расходы великоваты. Я бы использовал
SELECT *
FROM table_name
ORDER BY 0 + SUBSTRING(column_name FROM 2)

А для совсем ускорения, если такая сортировка используется часто, можно создать индекс по соотв. выражению, а то и generated column с соответствующим индексом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы