|
|
|
Сортировка текстовых полей или альтернатива
|
|||
|---|---|---|---|
|
#18+
Добрый день. Проектирую базу данных и стокнулся с одним интересным моментом, ответ на который меня почему то ещё не посетил :) discogs.com/label/The Third Movement Самое левое поле в таблице это 'catalog number', как там видно, по нему уних всё прелестно отсортированно. При том, что каталожные номера записаны в разных форматах (с тире, с пробелом и слитно): T3RDM-00003 T3RDM0004 T3RDM 0054 Например, сделал таблицу с полем 'catnum' (VARCHAR(255)), внёс туда эти три значения, делаю запрос: Код: plaintext T3RDM 0054 T3RDM-00003 T3RDM0004 Хочу что бы сортировалось как на дискогсе. Я вижу вариант добавить в таблицу поле 'order_id' и там указывать порядок вывода, но это нужно на самом деле не для всех лейблов, у других чаще всего нормально нумеруются релизы. Может быть есть способ хитро сортировать? Или есть идеи как реализовано хранение этих вещей на discogs? Заранее благодарен за ответ :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2009, 16:17 |
|
||
|
Сортировка текстовых полей или альтернатива
|
|||
|---|---|---|---|
|
#18+
О! Оказывается у дискогса есть вики и в ней страница с описанием их методики сортировки, то что нужно http://wiki.discogs.com/index.php/LazloCatalogSortTechnique Идея меня эта посещала, но они круто реализаовали. Есть visible catnum, а есть shadow catnum по которому и происходит сортировка. А преобразуется всё это искуственный интеллектом вот в такой вид Код: plaintext 1. 2. 3. 4. Убирают всё кроме цифр и букв, все буквы в верхний регистр, делят цифровой блок от числового и готово :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2009, 18:12 |
|
||
|
Сортировка текстовых полей или альтернатива
|
|||
|---|---|---|---|
|
#18+
Сортировал почтовую корреспонденцию по адресам. Адрес - строка в которой могут быть названия улиц, городов, буквы домов, квартир и пр. которые сортируются по алфавиту и всякоразные числа - индексы, номера домов, квартир, номера в названиях улиц и т.п. которые сортируются как числа. Для сортировки я написал функцию которая делила адрес на чередующиеся текстовые и числовые поля (с типом VARCHAR и NUMBER). Сортировка таких векторов проходила великолепно без каких либо скрытых полей в БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 15:51 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=80&tid=1542933]: |
0ms |
get settings: |
12ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 245ms |
| total: | 372ms |

| 0 / 0 |
