如何在mysql中加权'ORDER BY'?

cal*_*ant 6 mysql sql sql-order-by

我有一个全文查询,以:

 ORDER BY RELEVANCE DESC, CLICK_RATE DESC
Run Code Online (Sandbox Code Playgroud)

我能否按顺序给订单加权?也许order by到的相关性和0.30.7

就像现在的情况一样,即使我改变它们,结果也不尽如人意.

作为替代方案,如何将最高click_rate结果排序,3其余按相关性排序.

Con*_*rix 9

这应该工作

ORDER BY (.3 * RELEVANCE) + (.7 * CLICK_RATE) DESC

DEMO

从评论更新

按click_rate排序前3个结果,其余按相关性排序

您需要首先使用子查询识别前3个并执行排序

SELECT test.id, 
       test.relevance, 
       test.click_rate, 
       top_3_click_rate.id         t3_id, 
       top_3_click_rate.click_rate t3_click_rate 
FROM   test 
       LEFT JOIN (SELECT id, 
                         click_rate 
                  FROM   test 
                  ORDER  BY click_rate DESC 
                  LIMIT  3) top_3_click_rate 
         ON test.id = top_3_click_rate.id 
ORDER  BY top_3_click_rate.click_rate DESC, 
          test.relevance DESC 
Run Code Online (Sandbox Code Playgroud)

DEMO