Числовая сортировка значений в виде строк в MySQL

0

Мне интересно, есть ли способ сделать числовую сортировку, когда число является строкой. Взгляните на пример:

Запрос:

SELECT * FROM t_tables t order by id_string по возрастанию

Это список из БД:

13
4
6
8
10
1
3
2
5
12
7
9
11

Мне нужно извлечь его таким образом:

1
2
3
4
5
6
7
8
9
10
11
12
13

Но в результате я получаю следующее:

1
10
11
12
13
2
3
4
5
6
7
8
9
Теги:

3 ответа

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

Если вы знаете, что в столбце всегда есть числовые значения, вы можете использовать оператор CAST(). Также взгляните на этот вопрос.

SELECT * FROM t_tables t ORDER BY CAST(id_string AS UNSIGNED) ASC
  • 0
    Спасибо работает отлично
2
SELECT * FROM t_tables t order by cast(id_string as signed integer) asc;
1

Надеюсь, поможет:

SELECT * FROM t_tables t order by cast(id_string as unsigned)

Ещё вопросы

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