powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ORDER BY числа с точкой
28 сообщений из 28, показаны все 2 страниц
ORDER BY числа с точкой
    #38935859
Usen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, подскажите как всё таки правильно написать ORDER BY что бы цифры шли по порядку, уже и +0 пробовал, и формат данных меня и всё на свети и не выходит.
1
2
10
10.1
10.2
10.11
11
11.1
и т.д.
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38935865
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скрипты создания и наполнения таблицы в студию.
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38935876
Usen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
таблицы я вручную создавал, поле в котором хранятся цифры имеет тип float ( text и varchar) тоже пробовал. запрос вывода тоже очень простой select * from `porucheniya` WHERE ID_protokola='" . $id . "' ORDER BY nomerpp+0
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38935964
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usenполе в котором хранятся цифры имеет тип float . запрос вывода тоже очень простой

Код: sql
1.
select * from `porucheniya` WHERE ID_protokola='" . $id . "'  ORDER BY nomerpp+0





Что-то я сомневаюсь очень сильно , что это так.
В смысле, что поле -- float.

P.S. Зачем nomerpp +0 ?
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38935994
Usen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
MasterZiv,

0 отслатся когда varcharпробовал.

поле точно флоат
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936003
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usen,

Так у вас уже есть нормальная числовая сортировка. Что именно не устраивает?
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936009
Usen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

например
1
1.11 (одиннадцать)
1.2 (два)

а нужно что бы было
1
1.2
1.11


в 20. там лучше это видно
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936014
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
насколько я понимаю, дробная часть 1.2 в формате float читается в Вашем случае правильнее читать "двадцать". Если "два", то должно быть 1.02
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936016
Usen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr.Fontaine,

да совершенно верно, читается как двадцать, а в таком виде как у меня не дописывая 0 впереди можно как то добиться желаемого
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936020
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Usen, никак. Две десятых всегда больше одиннадцати сотых.
Это скорее всего в начальных классах проходят.
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936026
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, почему varchar не сортирует так как надо?
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936031
Usen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr.Fontaine,

Согласен, но вставляя хвостик из этой статьи получается следующие, что по последним знакам всё норм, аа вот без точки съезжает на последние место, вот я и предполагаю что как то всё можно сделать
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936032
Mr.Fontaine
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr.Fontaine, действительно, попробовал с varchar. Сортирует не по феншую
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936059
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, это такие же "числа с точкой", как ты китайский император!
Код: sql
1.
ORDER BY SUBSTRING_INDEX(fld,'.',1), SUBSTRING_INDEX(fld,'.',-1)
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936076
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И даже не так... у тебя ж не везде точки. В общем, проще или нормализовать (1 -> 1.0), или разделить - каждый уровень в своём поле.
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936082
Usen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

На самом деле очень давно была у меня такая же проблема но не помню как её решил... в принципе с помощью php можно решить но я думал запросом можно
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936093
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если fld останется float
Код: sql
1.
ORDER BY FLOOR(fld), CAST(MOD(fld,1) AS CHAR)

не тестировал, но вроде не наврал.
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936104
Usen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

То же к сожалению не то, результат как на первой картинки вышел
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936135
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подумалось...
А не получится в float хранить. Ведь для float неотличимы числа 1.199999999... и 1.2, а для желаемой сортировки это критично. Так что переделывайте на varchar и 17513345 .
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936148
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
ORDER BY FLOOR(fld), 0+CASE INSTR(fld,'.') WHEN 0 THEN 0 ELSE SUBSTRING_INDEX(fld,'.',-1) END;

ROFL
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936154
Usen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
select * from `porucheniya` WHERE ID_protokola='" . $id . "' ORDER BY SUBSTRING_INDEX(nomerpp,'.',1), SUBSTRING_INDEX(nomerpp,'.',-1)

тоже не то, вот блин головоломка левел 80)
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936170
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akina
Код: sql
1.
SUBSTRING_INDEX(fld,'.',-1)

Вроде работает, но не пойму как оно угадывает до какого разряда округлять float-хлам вида 1.1100000143051147 или 10.199999809265137 ?
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936180
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftне пойму как оно угадываетЭлементарно. Оно сперва преобразует число в строку - и при этом сначала округляет. Зараза...
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936202
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Akinamiksoftне пойму как оно угадываетЭлементарно. Оно сперва преобразует число в строку - и при этом сначала округляет. Зараза...Это понятно. А вот количество разрядов для округления как угадывает?
Хотя подозреваю, что для конкретного типа данных (в данном случае float) просто захардкодено какое-то число.
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936209
Usen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Последняя картинка это варчар.
значения все проверял неоднократно на наличие пробелов и прочего, всё нормально
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936347
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftколичество разрядов для округления как угадывает?
Хотя подозреваю, что для конкретного типа данных (в данном случае float)Float - это семизнак. И округление идёт до семи знаков. Вот будь поле Double - действительно был бы хлам, а не результат.
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936708
Usen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Получается никак нельзя реализовать такой вывод?
...
Рейтинг: 0 / 0
ORDER BY числа с точкой
    #38936727
Usen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

Сейчас просматривал тему и увидел Ваш ответ
ORDER BY FLOOR(fld), 0+CASE INSTR(fld,'.') WHEN 0 THEN 0 ELSE SUBSTRING_INDEX(fld,'.',-1) END;
попробовал и действительно заработало!!!!!! за что Ваш огромнейшее спасибо!!!!

тип varchar
...
Рейтинг: 0 / 0
28 сообщений из 28, показаны все 2 страниц
Форумы / MySQL [игнор отключен] [закрыт для гостей] / ORDER BY числа с точкой
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]