2013-10-14 60 views
2

我有這個SQL查詢。如果我在沒有LIMIT的情況下運行這個查詢,那麼匹配的結果是可以的,但是當我運行這個限制時(爲了無限滾動),我無法首先獲得最佳匹配,只是我獲得了LIMIT搜索的最佳匹配,而不是整個搜索中的第一個分隔爲10:使用MATCH AGAINST的Mysql LIMIT

SELECT videos.id_video as idVideo, 1 as idCanal, MATCH (nombre_prog, programas.descrip_larga) AGAINST ('escuela') as relevancia FROM videos 
INNER JOIN programas_videos ON videos.id_video = programas_videos.id_video 
INNER JOIN programas ON programas_videos.id_prog = programas.id_prog 
WHERE MATCH (nombre_prog, programas.descrip_larga) AGAINST ('escuela' IN BOOLEAN MODE) 
ORDER BY relevancia DESC LIMIT 5,5 

我該如何糾正?

謝謝!

回答

0

試試這個。它將首先返回子選擇的所有結果,然後應用該限制。

SELECT * 

FROM 

(
SELECT videos.id_video as idVideo, 1 as idCanal, MATCH (nombre_prog, programas.descrip_larga) AGAINST ('escuela') as relevancia FROM videos 
INNER JOIN programas_videos ON videos.id_video = programas_videos.id_video 
INNER JOIN programas ON programas_videos.id_prog = programas.id_prog 
WHERE MATCH (nombre_prog, programas.descrip_larga) AGAINST ('escuela' IN BOOLEAN MODE) 
ORDER BY relevancia DESC 
) AS x 

LIMIT 5,5 
+0

太棒了!非常感謝你!! – Martin

+0

圓括號內的DESC是絕招。謝謝! – Martin