これは、2つの列でテーブルを並べ替える方法を探している人を助けるかもしれませんが、並列の方法です。これは、集計ソート機能を使用して2つのソートを結合することを意味します。たとえば、全文検索を使用して記事を取得する場合や、記事の公開日に関する場合に非常に役立ちます。
これは単なる例ですが、アイデアをつかめば、使用する集約関数をたくさん見つけることができます。1秒よりも優先するように列に重みを付けることもできます。私の機能は両方の種類から極端なものを取っているので、最も価値のある行が一番上にあります。
この仕事を行う簡単な解決策が存在する場合は申し訳ありませんが、私はそれを見つけていません。
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