Это может помочь кому-то, кто ищет способ сортировки таблицы по двум столбцам, но параллельно. Это означает объединить две сортировки, используя функцию сортировки агрегатов. Это очень полезно, например, при получении статей с использованием полнотекстового поиска, а также в отношении даты публикации статьи.
Это только пример, но если вы поймете идею, вы сможете найти множество агрегатных функций для использования. Вы можете даже весить столбцы, чтобы предпочесть одну секунду. Моя функция берет крайности из обоих сортов, поэтому наиболее ценные строки находятся сверху.
Извините, если существуют более простые решения для этой работы, но я не нашел ни одного.
SELECT
`id`,
`text`,
`date`
FROM
(
SELECT
k.`id`,
k.`text`,
k.`date`,
k.`match_order_id`,
@row := @row + 1 as `date_order_id`
FROM
(
SELECT
t.`id`,
t.`text`,
t.`date`,
@row := @row + 1 as `match_order_id`
FROM
(
SELECT
`art_id` AS `id`,
`text` AS `text`,
`date` AS `date`,
MATCH (`text`) AGAINST (:string) AS `match`
FROM int_art_fulltext
WHERE MATCH (`text`) AGAINST (:string IN BOOLEAN MODE)
LIMIT 0,101
) t,
(
SELECT @row := 0
) r
ORDER BY `match` DESC
) k,
(
SELECT @row := 0
) l
ORDER BY k.`date` DESC
) s
ORDER BY (1/`match_order_id`+1/`date_order_id`) DESC