Це може допомогти тому, хто шукає спосіб сортування таблиці за двома стовпцями, але паралельно. Це означає поєднувати два сорти за допомогою сукупної функції сортування. Це дуже корисно, наприклад, для отримання статей за допомогою повнотекстового пошуку, а також щодо дати публікації статті.
Це лише приклад, але якщо ви зрозумієте цю ідею, ви можете знайти безліч сукупних функцій, які можна використовувати. Ви навіть можете зважувати стовпці, щоб віддати перевагу одній за секунду. Функція шахти займає крайності з обох видів, тому найбільш цінні ряди знаходяться вгорі.
Вибачте, якщо є більш спрощені рішення для виконання цієї роботи, але я не знайшов жодного.
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