Задать вопрос
@OrdeO
just......newbie

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

Есть колонка, где значения буква + какая-то цифра, буква всегда 'D' цифры идут по возрастанию. Столкнулся с тем, что сортировка отрабатывает некорректно, как поправить?
607e3cb41a5b9708231295.png
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Простой 1 комментарий
Помогут разобраться в теме Все курсы
  • Skillbox
    Java-разработчик
    8 месяцев
    Далее
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • OTUS
    PHP Developer. Professional
    5 месяцев
    Далее
Решения вопроса 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 с соответствующим индексом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы