Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > Сортировка пунктов: 1.1, 1.2, 2.2 и т.д.


Автор: Rexar 11.6.2009, 01:09
Как можно выполнить сортировку по полю с пунктами, помогите пожалуйста.
К примеру, если по алфавиту сортировать, то будет неправильно:
1
1.1
1.2
10
10.1

2
2.1
2.2
А надо чтобы было так:
1
1.1
1.2
2
2.1
2.2
10
10.1

Автор: Akina 11.6.2009, 07:51
Код

select * 
from `table` 
order by CAST(`field` AS decimal);

Автор: skyboy 11.6.2009, 13:53
а могут быть пункты "1.1.5.7"?

Автор: Rexar 11.6.2009, 16:55
Цитата(skyboy @ 11.6.2009,  13:53)
а могут быть пункты "1.1.5.7"?

Могут......  smile

Спасибо Akina за помощь, работает идеально

Автор: skyboy 12.6.2009, 14:44
Цитата(Rexar @  11.6.2009,  15:55 Найти цитируемый пост)
Могут...... 

в таком случае CAST(`field` AS decimal) вернет не то, что ожидалось(как можно привести "1.5.7" к типу "вещественное число"?)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)