我想在同一个查询上使用 ORDER BY 和 GROUP BY。但是,如果我使用 Group BY,则相关性将无法正常工作。
这是代码:
(SELECT *, MATCH(keywords) AGAINST('$busqueda') AS relevancia
FROM libros
WHERE MATCH(keywords) AGAINST('$busqueda') AND tipo = 'nuevo'
GROUP BY id_libro
ORDER BY relevancia DESC, posicion ASC, precio DESC LIMIT $numero_limite)
如果我得到这个(另一个例子)的等价物,但使用前面的代码,我的查询将正常工作,因为在这个例子中,order by 和 group by 工作得很好,但没有我需要的匹配:
SELECT
t.id, t.catid, t.name, t.userid, t.subject
FROM
(SELECT id, catid, name, userid, subject , thread
FROM mensajes
ORDER BY t.id DESC) t
GROUP BY t.thread
LIMIT 6;
这是表格(对不起,论坛不让我放图片到没有10分):
http://www.forosdelweb.com/f86/group-match-against-respetando-relevancia-1089769/#post4561689
您可以在该链接上看到捕获/图像。
如图 3 所示,结果不正确。必须是 id_unico 9,因为有一个位置 21。
有人知道吗?