Cela peut peut-être aider quelqu'un qui cherche le moyen de trier le tableau sur deux colonnes, mais de manière parallèle. Cela signifie combiner deux tris à l'aide de la fonction de tri agrégé. Il est très utile, par exemple, pour récupérer des articles à l'aide de la recherche en texte intégral et également concernant la date de publication de l'article.
Ce n'est qu'un exemple, mais si vous saisissez l'idée, vous pouvez trouver beaucoup de fonctions d'agrégation à utiliser. Vous pouvez même pondérer les colonnes pour en préférer une à la seconde. La fonction de la mienne prend des extrêmes des deux sortes, donc les lignes les plus valorisées sont en haut.
Désolé s'il existe des solutions plus simples pour faire ce travail, mais je n'en ai trouvé aucune.
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