Сортировка на поле varchar как целое число в MySQL

0

У меня есть таблица с тремя полями: "Id, Name, Sequence".
В столбце "Последовательность" имеются следующие записи: 1, 2, 3, 4, 2a, 5, 2b, 2c, 3, 4a (Строка).

Теперь я хочу запросить mysql, который может сортировать следующие значения:

1, 2, 2a, 2b, 2c, 3, 4, 4a, 5.

Я пробовал следующий запрос

SELECT * FROM table_name ORDER BY CAST(sequence AS UNSIGNED) ASC.
Но это не работает.

  • 0
    вам ничего не нужно, кроме SELECT * FROM table_name ORDER BY sequence asc
  • 0
    @senape, который ставит 10 перед 2 так как поле varchar не число.
Показать ещё 7 комментариев
Теги:

1 ответ

1
Лучший ответ

Сначала вы хотите заказать по целому числу, а затем упорядочить по подстроке после номера, просто упорядочив всю строку в качестве подтипа:

SELECT * FROM table_name ORDER BY CAST(sequence AS UNSIGNED), sequence;

Вот пример скрипта SQL с примером. Я остановился на ASC так как по умолчанию.

  • 0
    Спасибо @lurker, все работает нормально.
  • 0
    @VirendraPratapSingh это здорово! Если бы вы могли принять этот ответ, нажав на флажок рядом с ним, я был бы признателен.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню