我有这个SQL查询。如果我在没有LIMIT的情况下运行此查询,匹配的结果就可以了,但是当我使用限制运行时(进行无限滚动),我无法获得最佳匹配,只是我获得LIMIT搜索的最佳匹配,而不是10中分开的整个搜索中的第一个:
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 :(得分: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