MySQL сортирует несколько столбцов с разным порядком сортировки - PullRequest
4 голосов
/ 20 июля 2011

У меня есть таблица, в которой у меня есть три поля с типом данных date, int и bigint.

Я хочу отсортировать мой запрос на выборку, используя все эти три столбца. Я хочу отсортировать их все в порядке убывания. Например:

Select * From mytbl 
order by date desc,intnum desc, bigintnum desc;

Возможно ли, что я смогу получить результат, начиная с макс. Всех трех столбцов. как последняя дата, наивысший интнум и наивысший бигинтнум.

Ответы [ 2 ]

2 голосов
/ 20 июля 2011

нет

Ваш запрос получает max date, затем max intnum из max date и затем max bigintnum из max intnum из max date

Другими словами, ваш запрос не будет возвращать максимальное значение всех трех столбцов

Он упорядочивается сначала по дате, затем по intnum, затем по bigintnum. Результаты будут примерно такими:

2011-07-20    12    14
2011-07-20    12    13
2011-07-20    11    16
2011-07-20    10    12
2011-07-19    20    15
2011-07-18    60    30
2011-07-18    50    14
1 голос
/ 08 января 2013

Невозможно получить результат, начиная с макс. Всех трех столбцов. как последнее свидание, высший интнум и высший бигинтнум.

 Select * From mytbl 
 order by date desc,intnum desc, bigintnum desc;

Поскольку вы знаете, что делает ORDER BY, если у вас есть несколько столбцов, упорядоченных по предложению, сначала он будет упорядочен по DATE Desc, а затем в первую дату будет упорядочен по INTNUM Desc, а затем упорядочен по BIGINTNUM.

...