Числовая сортировка значений в виде строк в MySQL - PullRequest
0 голосов
/ 17 октября 2011

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

Запрос:

SELECT * FROM t_tables t порядок по id_string asc

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

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 голосов
/ 17 октября 2011
SELECT * FROM t_tables t order by cast(id_string as signed integer) asc;
2 голосов
/ 17 октября 2011

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

SELECT * FROM t_tables t ORDER BY CAST(id_string AS UNSIGNED) ASC
1 голос
/ 17 октября 2011

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

SELECT * FROM t_tables t order by cast(id_string as unsigned)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...