Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > MySQL > как отсортиробать по определённому паттерну? |
Автор: polosatij 21.6.2006, 21:02 |
прет сем =) сушествуют следующие поля в базе данных: SS06 SS05 WS05 WS04 SS04 WS06 как их отсортировать в следующем порядке? WS04 SS04 WS05 SS05 WS06 SS06 ![]() пасиба ![]() |
Автор: Akina 21.6.2006, 22:24 | ||
Поля не сортируют - это бред. Если же имеется в виду содержимое определенного поля в таблице - то просто создай вспомогательную таблицу
|
Автор: igorold 22.6.2006, 06:43 | ||
Поля действительно не сортируют, сортируют по значению полей ... Может тебе это надо:
а Akina - это он или ты так прикалываешься? |
Автор: Akina 22.6.2006, 10:19 | ||||||
Сортируют записи по значению поля или комбинации полей. Значит напиши свою функцию, которая принимает Pattern и возвращает SortingOrder. Типа:
|
Автор: skyboy 22.6.2006, 11:07 | ||
Сортирует, как в примере. Однако ты ничего не сказал про способ формирования кодов и какие они бывают. Если только из четырёх символов 2 буквы + 2 цифры, то проблем нет. |
Автор: polosatij 22.6.2006, 19:20 | ||||||
я ошибся..
держи + ![]()
сорри.. я ошибся со словом.. живу уже 6 лет в германии..
я никогда не писал на Visual Basic-е.. и попытаюсь понять смысл: у тебя функция SortingOrder() возвращает Long.. что эквивалентно запросу: Select MyTable.* From MyTable Order By 100l эээээээ... я не пойму смысла.. что не правильно я подумал? хм... ![]() ![]() хочу понять, можно ли отсортировать вообще как в голову прийдёт.. |
Автор: Akina 22.6.2006, 22:53 | ||||
Можно. Либо вспомогательной таблицей (как я указал ранее), либо функцией. Суть функции - вернуть для каждой записи ее порядок при сортировке. Помнишь, я рисовал вспомогательную таблицу? А вот что вернет написанная мной функция:
Значения немного другие, но порядок при сортировке абсолютно тот же. Т.е. по сути оба этих способа абсолютно вроде бы эквивалентны... разве что таблица быстрее работает, зато функция не жрет памяти базы данных и гибче, ведь она может учитывать и нестационарные позиции, и использовать несколько полей для принятия решения... например сортировку по наименьшему из ASCII-кодов всех байтов строкового поля кроме пробельных никакой таблицей не запрограммить... |