Это может помочь кому-то, кто ищет способ сортировки таблицы по двум столбцам, но параллельно. Это означает объединить две сортировки, используя функцию совокупной сортировки. Это очень полезно, например, для получения статей с использованием полнотекстового поиска, а также для даты публикации статьи.
Это только пример, но если вы поймете эту идею, вы сможете найти множество агрегатных функций для использования. Вы можете даже взвесить столбцы, чтобы они предпочли одну секунду. Моя функция берет крайности от обоих сортов, поэтому наиболее ценные строки находятся сверху.
Извините, если существуют более простые решения для этой работы, но я не нашел ни одного.
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