[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: MySQL, 2 ORDER'a
papa_serg
Здравствуйте, подскажите, каким образом, можно отсортировать данные в mysql, по 2м параметрам, желательно в 1ом запросе?
т.е. грубо говоря:
select * from `aaa` order by `a_date` DESC

результат:

ID a_date a_sort
5 [один час назад] 0
3 [два часа] 1
7 [3 часа] 1
1 [сутки] 0
9 [неделя] 0

а затем ещё раз, но уже по a_sort, то бишь, что бы получилось что-то вроде:
ID a_date a_sort
3 [два часа] 1
7 [3 часа] 1
5 [один час назад] 0
1 [сутки] 0
9 [неделя] 0

Спасибо.



Спустя 1 минута (2.09.2011 - 11:44) neadekvat написал(а):
Что, неужели этого в документации нет?
ORDER BY col DESC, col2 ASC.

Спустя 6 минут, 21 секунда (2.09.2011 - 11:51) papa_serg написал(а):
не сработало, то бишь запрос:
SELECT *
FROM `aaa`
ORDER BY a_data DESC , a_sort DESC
LIMIT
0 , 5


по дате отсортировалось, по "a_sort" - нет, результат запроса: 3 4 7 7 3 и т.д.

Спустя 22 минуты, 26 секунд (2.09.2011 - 12:13) linker написал(а):
А логически подумай. Если бы было

1 3
1 2
3 4
5 6
5 4
4 7

То после сортировки по первому полю получится

1 3
1 2
3 4
4 7
5 6
5 4

последующая сортировка по второму полю даст

1 2
1 3
3 4
4 7
5 4
5 6

Т.е. грубо говоря, сначала сортируется по первому полю, потом идёт группировка по одинаковым значениям этого поля, после чего в этих группах сортируется по второму полю. Именно поэтому не получится так, как ты хочешь. У тебя два варианта, либо сменить тз, либо выбрать какую-то одну сортировку.
Быстрый ответ:

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