т.е. грубо говоря:
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.
ORDER BY col DESC, col2 ASC.
Спустя 6 минут, 21 секунда (2.09.2011 - 11:51) papa_serg написал(а):
не сработало, то бишь запрос:
по дате отсортировалось, по "a_sort" - нет, результат запроса: 3 4 7 7 3 и т.д.
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
Т.е. грубо говоря, сначала сортируется по первому полю, потом идёт группировка по одинаковым значениям этого поля, после чего в этих группах сортируется по второму полю. Именно поэтому не получится так, как ты хочешь. У тебя два варианта, либо сменить тз, либо выбрать какую-то одну сортировку.
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
Т.е. грубо говоря, сначала сортируется по первому полю, потом идёт группировка по одинаковым значениям этого поля, после чего в этих группах сортируется по второму полю. Именно поэтому не получится так, как ты хочешь. У тебя два варианта, либо сменить тз, либо выбрать какую-то одну сортировку.