В моем PHP-приложении у меня есть таблица статей mysql, в которой есть следующие столбцы:
article_id articletext category_id score
Каждая статья имеет оценку, которая рассчитывается на основе ее популярности и относится к определеннойкатегория (доступно около 10 категорий)
Мой вопрос: как мне выполнить запрос, который возвращает статьи с наивысшим баллом, чередуя их по категориям, чтобы, если это возможно, статьи той же категории не возвращались последовательно.Например, если статья с наивысшей оценкой набрала 100 баллов, возвращаемый набор будет выглядеть примерно так:
article_id articletext category_id score
-----------------------------------------------------
142 <.....> 5 100
153 <.....> 3 97
119 <.....> 5 99
169 <.....> 2 93
121 <.....> 7 89
197 <.....> 2 92
.
.
.
Первое (наивное) решение, которое приходит в голову, - выполнить 10 отборов (1 для каждой категории), упорядочивих по убыванию оценки, а затем на уровне PHP, чередуя каждый возвращенный набор данных, выбирая по одному результату за раз и объединяя их вместе в новом массиве.
Есть ли более эффективный способ добиться этого?Если возможно на уровне MySQL