Bu, tabloyu iki sütuna göre sıralama yolunu arayan birine paralel bir şekilde yardımcı olabilir. Bu, toplam sıralama işlevini kullanarak iki türü birleştirmek anlamına gelir. Örneğin, tam metin araması kullanarak makaleler alınırken ve makalenin yayınlanma tarihi ile ilgili olarak çok kullanışlıdır.
Bu sadece örnektir, ancak fikri yakalarsanız kullanmak için bir çok toplama işlevi bulabilirsiniz. Hatta bir saniyeden fazla tercih etmek için sütunları bile ağırlıklandırabilirsiniz. Benim fonksiyonum her iki türden de aşırı uçlar alıyor, bu nedenle en değerli satırlar üstte.
Bu işi yapmak için daha basit çözümler varsa, ama hiç bulamadım.
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