powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Сортировка текстовых полей или альтернатива
3 сообщений из 3, страница 1 из 1
Сортировка текстовых полей или альтернатива
    #36363623
tselofun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Проектирую базу данных и стокнулся с одним интересным моментом, ответ на который меня почему то ещё не посетил :)

discogs.com/label/The Third Movement
Самое левое поле в таблице это 'catalog number', как там видно, по нему уних всё прелестно отсортированно. При том, что каталожные номера записаны в разных форматах (с тире, с пробелом и слитно):
T3RDM-00003
T3RDM0004
T3RDM 0054

Например, сделал таблицу с полем 'catnum' (VARCHAR(255)), внёс туда эти три значения, делаю запрос:
Код: plaintext
SELECT * FROM `test` ORDER BY `catnum` ASC
результат:
T3RDM 0054
T3RDM-00003
T3RDM0004

Хочу что бы сортировалось как на дискогсе. Я вижу вариант добавить в таблицу поле 'order_id' и там указывать порядок вывода, но это нужно на самом деле не для всех лейблов, у других чаще всего нормально нумеруются релизы. Может быть есть способ хитро сортировать? Или есть идеи как реализовано хранение этих вещей на discogs?

Заранее благодарен за ответ :)
...
Рейтинг: 0 / 0
Сортировка текстовых полей или альтернатива
    #36363751
tselofun
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О! Оказывается у дискогса есть вики и в ней страница с описанием их методики сортировки, то что нужно
http://wiki.discogs.com/index.php/LazloCatalogSortTechnique

Идея меня эта посещала, но они круто реализаовали. Есть visible catnum, а есть shadow catnum по которому и происходит сортировка. А преобразуется всё это искуственный интеллектом вот в такой вид

Код: plaintext
1.
2.
3.
4.
Visible                | Shadow
T3RDM- 00003    | T3RDM  0003 
T3RDM0004      |  T3RDM  0004 
T3RDM  0054      |  T3RDM  0054 

Убирают всё кроме цифр и букв, все буквы в верхний регистр, делят цифровой блок от числового и готово :)
...
Рейтинг: 0 / 0
Сортировка текстовых полей или альтернатива
    #36371886
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сортировал почтовую корреспонденцию по адресам.
Адрес - строка в которой могут быть названия улиц, городов, буквы домов, квартир и пр. которые сортируются по алфавиту и всякоразные числа - индексы, номера домов, квартир, номера в названиях улиц и т.п. которые сортируются как числа.

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


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