Как отсортировать записи в базе 1.4, 2.6.5...

L
На сайте с 22.11.2013
Offline
94
1519

Здравствуйте

в поле типа char есть записи вида

3.7.9

6.9

7.0

3.0.9

.......

как их отсортировать по порядку

order by field сортирует но не всегда правильно

по идее можно точку заменить чем то. а потом при выводе менять. но чем.

или может есть другой тип поля

totamon
На сайте с 12.05.2007
Offline
346
#1

если вы хотите именно в строках хранить и сравнивать, то приводите к единому формату

3.7.9

6.9.0

7.0.0

3.0.9

Хостинг от 90р ( https://goo.gl/h1VRkY ) и ВПС от 161р ( https://goo.gl/vw9JH7 ) 14 дней бесплатный тест! Лучшие ВПС, ТП огонь, все страны! https://8fn.ru/inferno а тут ВПС за 1,25$ https://8fn.ru/vps1doll Монетизация любых сайтов PUSHами ( https://8fn.ru/push ) - лучшая цена клика и показа ;)
L
На сайте с 22.11.2013
Offline
94
#2

ааа. тоже вариант. не подумал про такое

спасибо

C
На сайте с 04.02.2005
Offline
246
#3
lutskboy:
по идее можно точку заменить чем то. а потом при выводе менять. но чем.
или может есть другой тип поля

Ну и меняйте

SELECT with_dot, replace(whit_dot,'.','')

FROM table

ORDER BY 2

L
На сайте с 22.11.2013
Offline
94
#4
Chukcha:
Ну и меняйте

SELECT with_dot, replace(whit_dot,'.','')
FROM table
ORDER BY 2

тоже не сортирует правильно

---------- Добавлено 09.02.2017 в 13:16 ----------

кстати и то что советовал totamon, тоже

и виной всему то, что есть и такие строки где идет подряд два числа

1.11.3

2.10.1

......

а не просто число точка

C
На сайте с 04.02.2005
Offline
246
#5

ну можно иначе сортировать

типа по точкам

но тогда должно быть фиксированное количество точек

ORDER BY до первой точки, первая вторая, третья

totamon
На сайте с 12.05.2007
Offline
346
#6
lutskboy:
и виной всему то, что есть и такие строки где идет подряд два числа

две цифры может? я когда писал про формат это и имел в виду, что нужно приводить к единому формату, если максимальное число 2 разряда число то 01,11,99, если 3 то 000,001,020,345 и тд...

вы же понимаете, что в вашем случае вы сравниваете не числа, а строки? и строки должны быть одинаковой длины.

дани мапов
На сайте с 06.09.2012
Offline
192
#7
Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий