последовательная сортировка полей

proft

Новичок
последовательная сортировка полей

Есть таблица из полей name, reg_date, packet, … нужно в запросе сначала отсортировать по reg_date, а потом результат по packet, поиск по форуму не надыхнул на идею :( Можно сделать выборку по дате (reg_date), а потом средствами пхп отсортировать по packet, но хотелось что бы мускул отдал уже готовый результат

до

name | reg_date | packet
n1|1153774478|2
n2|1153764350|4
n3|1153764321|1
n4|1153764267|4
n5|1153764255|4

после

name | reg_date | packet
n3|1153764321|1
n1|1153774478|2
n2|1153764350|4
n4|1153764267|4
n5|1153764255|4

по сути меньшие значения поля packet всплывают
 

Фанат

oncle terrible
Команда форума
то есть, получается, наоборот - сначала надо сортировать по полю packet?

ты вообще, смысл слова "сортировка" понимаешь? сдаётся мне, что нет
 

proft

Новичок
Panchous

SELECT name, reg_date, packet FROM table ORDER BY reg_data DESC, packet ASC LIMIT 0, 10
этот запрос не сортирует результат сортировки по reg_data по полю packet (и не должен :)

Фанат
идея такова что должно отображаться 10 последних элементов из БД, если сортировка поизводится сначала по packet то вверху окажется 10 элеметов с packet = 1, а новые поступления с меньшим значением поля packet не всплывут.

то, что после сортировки по дате окажется в результате я понимаю, мне бы результат сортировки по дате отсортировать по packet, это можно сделать одним запросом или я много хочу ?
 

Фанат

oncle terrible
Команда форума
сначала ты должен объяснить, чего ты хочешь.
пока это у тебя получается весьма слабо.
а по правде говоря - отвратительно получается.
ты употребляешь слова типа "сортировка", не понимая их смысла.

алгоритм сортировки ты так и не привёл
всё какие-то загадочные пассы руками.

ты можешь внятно сказать, по какому принципу упорядочивается список после сортировки по дате?

-~{}~ 26.07.06 18:55:

идея такова что должно отображаться 10 последних элементов из БД,
формализуй понятие "10 последних элементов"
в бд нету ни первых, ни последних. всё в кучу навалено.
 

proft

Новичок
Фанат
более внимательно, плиз, посмотрите на мой первый пост, я там привел пример :

например есть такая таблица

name | reg_date | packet
n1|1153774478|2
n2|1153764350|4
n3|1153764321|1
n4|1153764267|4
n5|1153764255|4

т.е. по reg_date уже отсортирована, в конечном результате хотелось бы увидеть:

n3|1153764321|1
n1|1153774478|2
n2|1153764350|4
n4|1153764267|4
n5|1153764255|4

т.е. две последних записи остаются на месте, а записи с значениями 1,2 поля packet всплывают вверх

"идея такова что должно отображаться 10 последних элементов из БД," --- 10 последних по дате (поле reg_data)
 

Фанат

oncle terrible
Команда форума
10 последних по дате (поле reg_data)
отлично.
а теперь сформулируй идею ещё раз.
чтобы она отражала твои потребности.

-~{}~ 26.07.06 19:08:

понятно, короче.
сортируй в пхп.
 

Фанат

oncle terrible
Команда форума
мне бы результат сортировки по дате отсортировать по packet,
тебе не результат сортировки по дате отсортировать надо.
а результат вырезки ЛИМИТОМ
 

proft

Новичок
да.
так все таки как-то можно?

моя версия мускула (4.1.8) пишет что в вложеных запросах не поддерживаеться LIMIT
 

proft

Новичок
по-подробней, плиз
- не нужно играться с sql и сделать на php или
- не нужно вложеных запросов
?
 
Сверху