Как отсортировать таблицу MySQL по двум столбцам?
То, что я хочу, это статьи, отсортированные по наивысшим рейтингам, а затем по самой последней дате. В качестве примера, это будет пример вывода (слева # рейтинг, затем название статьи, затем дата статьи)
50 | Эта статья качается | 4 февраля 2009 г. 35 | Эта статья довольно хорошая | 1 февраля 2009 г. 5 | Эта статья не так жарко | 25 января 2009 г.
Соответствующий SQL, который я использую:
ORDER BY article_rating, article_time DESC
Я могу сортировать по одному или другому, но не обоим.
mysql
sql-order-by
billynoah
источник
источник
будет сортировать по article_time, только если есть две статьи с одинаковым рейтингом. Из всего, что я вижу в вашем примере, это именно то, что происходит.
но учтите:
источник
DESC
в конце сортирует по обоим столбцам по убыванию. Вы должны указать,ASC
если вы хотите, иначеисточник
Это может помочь кому-то, кто ищет способ сортировки таблицы по двум столбцам, но параллельно. Это означает объединить две сортировки, используя функцию сортировки агрегатов. Это очень полезно, например, при получении статей с использованием полнотекстового поиска, а также в отношении даты публикации статьи.
Это только пример, но если вы поймете идею, вы сможете найти множество агрегатных функций для использования. Вы можете даже весить столбцы, чтобы предпочесть одну секунду. Моя функция берет крайности из обоих сортов, поэтому наиболее ценные строки находятся сверху.
Извините, если существуют более простые решения для этой работы, но я не нашел ни одного.
источник
Следующее упорядочит ваши данные в зависимости от обоих столбцов в порядке убывания.
источник