[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: "Сложная" сортировка таблицы
MailRes
Всем привет!

Есть таблица "table" и колонка "name" и 6 строк:
"яблоко 1; помидор Д"
"яблоко 2; помидор Е"
"яблоко 4; помидор В"
"яблоко 3; помидор А"
"яблоко 6; помидор Б"
"яблоко 5; помидор Г"

Стандартная сортировка запросом "select * from table order by name asc" выведет такой результат:
"яблоко 1; помидор Д"
"яблоко 2; помидор Е"
"яблоко 3; помидор А"
"яблоко 4; помидор В"
"яблоко 5; помидор Г"
"яблоко 6; помидор Б"

Как сделать, чтобы результат можно было вывести еще таким образом:
"яблоко 3; помидор А"
"яблоко 6; помидор Б"
"яблоко 4; помидор В"
"яблоко 5; помидор Г"
"яблоко 1; помидор Д"
"яблоко 2; помидор Е"
???

Т.е. чтобы сортировка прошла по значениям, которые после знака ";" стоят.
Winston
Думаю, что можно попробовать сделать
select substring(...) as chr ... order by chr
MailRes
ну, думаю, не совсем верно))) т.к. поправлю изначальную версию задачи, что поле "name" не единственное, а сортировку именно по нему надо делать, а в результатах нужны все поля, т.е. select * from

---
еще прочитал:
string SUBSTRING (str string, pos integer, len integer )

string SUBSTRING (str string FROM pos integer FOR len integer)

Возвращает подстроку строки str длиною len символов с позиции pos. Поддерживает многобайтовые символы. Вариант с "FROM " используется в синтаксисе ANSI SQL92. В функции SUBSTRING () если не указан аргумент len, то возвращает всю подстроку строки str с позиции pos.
--
Winston, если вы про эту функцию написали, то я думаю, что она не подойдет, т.к. количество символов до ";" и после будет разным.
Мне кажется это не подойдет, или я ошибаюсь? Если, да, то в чем?
Winston
Ну так можно написать
select *, substring(...) as chr from
Winston
select *, substring(name, -1, 1) as chr from

Чтобы достать последнюю букву
MailRes
ну да))) покопал еще, и вроде как получилось, спасибо Winston!

запрос сделал вида
SELECT *, SUBSTRING_INDEX(name, ';', -1) AS at FROM table ORDER BY at


И, вроде, заработало)) Пока глюков не увидел.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.