2014-01-09 52 views
0

在一個classfieds廣告的網站,我有一個查詢,看起來像這樣:mysql的相關要求,然後按日期排序

SELECT * FROM ads WHERE MATCH (ad_title, ad_description) AGAINST ('VW gearbox') 

這表明很好地整理相關的結果。 但我想保持相關性,而排序ad_date。如果我直接按日期排序,那麼它可能會在最後顯示結果,而這些結果的相關性最差。

我需要調整此查詢來限制結果的相關性,然後才按日期排序。

我發現了許多類似的問題,但我必須承認我有麻煩了解其他問題中的示例查詢。

我確實嘗試追加as relevancy但我得到了MySQL錯誤。

回答

1

,如果你的意思是按相關排序第一,然後按日期,然後嘗試

SELECT * FROM ads WHERE MATCH (ad_title, ad_description) AGAINST ('VW gearbox') 
ORDER BY MATCH (ad_title, ad_description) AGAINST ('VW gearbox') DESC, ad_date DESC 

或通過像這樣

SELECT * FROM ads WHERE MATCH (ad_title, ad_description) AGAINST ('VW gearbox') > 0.3 ORDER BY ad_date DESC 

您可以SELECT *, MATCH(ad_title,ad_descriptioN) AGAINST ('VW gearbox') as relevancy FROM ads限制的相關性,並得到了數字的感覺和看什麼號碼切斷你的結果。

+0

第一次測試似乎正確,在選擇答案之前我會再測試一次。謝謝。 – adrianTNT

相關問題