Ini mungkin membantu seseorang yang mencari cara untuk mengurutkan tabel dengan dua kolom, tetapi secara paralel. Ini berarti menggabungkan dua jenis menggunakan fungsi penyortiran agregat. Ini sangat berguna ketika misalnya mengambil artikel menggunakan pencarian teks lengkap dan juga mengenai tanggal penerbitan artikel.
Ini hanya contoh, tetapi jika Anda menangkap idenya, Anda dapat menemukan banyak fungsi agregat untuk digunakan. Anda bahkan dapat menimbang kolom untuk memilih satu di atas detik. Fungsi saya mengambil ekstrem dari kedua jenis, sehingga baris paling dihargai ada di atas.
Maaf jika ada solusi yang lebih sederhana untuk melakukan pekerjaan ini, tetapi saya belum menemukan.
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