powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как отсортировать и строку и число
8 сообщений из 8, страница 1 из 1
Как отсортировать и строку и число
    #38736924
motoroller1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста как быть в ситуации, делаю запрос к БД и получаю данные типа varchar
Но иногда эти данные в виде строки, а иногда в виде числа.
В другом поле (type) у меня содержится тип получаемых данных (строка или число).

Скажите могу ли я сделать ORDER различный в зависимости от значения type
...
Рейтинг: 0 / 0
Как отсортировать и строку и число
    #38736930
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motoroller1983Но иногда эти данные в виде строки, а иногда в виде числа.Так не бывает. В пределах одной таблицы или набора записей в одном поле всегда может быть только один тип данных, одинаковый для всех записей.
...
Рейтинг: 0 / 0
Как отсортировать и строку и число
    #38736933
motoroller1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну я же сказал тип varchar поле где данные храняться
но иногда туда записываются слова а иногда числа

так вот сортировка нужна адекватная
...
Рейтинг: 0 / 0
Как отсортировать и строку и число
    #38736935
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motoroller1983так вот сортировка нужна адекватнаяа что вперед должно идти - 'aaa' или '123' ?
...
Рейтинг: 0 / 0
Как отсортировать и строку и число
    #38737461
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motoroller1983Ну я же сказал тип varchar поле где данные храняться
но иногда туда записываются слова а иногда числа
VARCHAR - это всегда строка. БЕЗ ВАРИАНТОВ.
То, что Вы лично некий тип строк интерпретируете как число, никоим образом не соотносится с типом хранимых и обрабатываемых данных. Это типичная ошибка - путать значение и его отображение.

Если же всё-таки "хочется странного" - то нужно выработать некие строгие формализованные признаки, которые однозначно укажут, должно ли определённое значение восприниматься как строковое или как чисельное. И на основе материализованного выражения расчёта такого признака строить первый шаг сортировки. Например

Код: sql
1.
2.
3.
ORDER BY
    TRIM(field)=CAST(CAST(field AS UNSIGNED) AS CHAR),
    field
...
Рейтинг: 0 / 0
Как отсортировать и строку и число
    #38737579
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 04.09.2014 00:58, motoroller1983 wrote:
> Ну я же сказал тип varchar поле где данные храняться

Тогда это всегда строка.

> но иногда туда записываются слова а иногда числа

Тебе уже сказали, так не бывает. ТУДА записывается всегда
строка.


> так вот сортировка нужна адекватная

Разбивай на два поля. Оба с NULL.

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как отсортировать и строку и число
    #38738067
motoroller1983
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Еще раз объясняю, я понимаю, что неправильно в varchar хранить число и строки.
Я понимаю, что база воспринимает все как строку.

Но вот такая задача.
Бывает в данном поле: либо все данные строка, либо число, причем иногда с десятыми.



Вот решение:

Код: sql
1.
2.
3.
order BY
              CAST(SUBSTRING_INDEX(`gs`.`value`, '.', 1) AS signed),
     	      CAST(SUBSTRING_INDEX(`gs`.`value`, '.', -1) AS signed), `gs`.`value`



Но это не сортирует
...
Рейтинг: 0 / 0
Как отсортировать и строку и число
    #38738073
Фотография Lumix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
motoroller1983,

запомните общее правило для случаев когда в полях хранятся сложные данные:

всегда создается дополнительная сортировочная колонка в которую записываются нормализованные для сортировки значения, которые являются производным значением (с соотв. некой логикой) от этих самых сложных данных

это общая концепция, которая почти всегда работает отлично и не требует от СУБД каких-то наворотов и соотв. кодерам не требуется знать никаких наворотов конкретной СУБД
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как отсортировать и строку и число
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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