【发布时间】:2021-07-31 21:17:02
【问题描述】:
我有一个使用 MATCH AGAINST 的存储过程,它最初返回按相关性排序的数据,这正是我想要的。但是,当我添加一个LEFT JOIN 和第二个MATCH AGAINST 时,它现在从两者返回数据,但不再按相关性排序。它现在自动按 ID 排序。
从一个按相关性排序的表返回:
BEGIN
SELECT
dictionary.id,
dictionary.`term`,
dictionary.`definition`
FROM itDictionary dictionary
WHERE MATCH(dictionary.term, dictionary.definition)
AGAINST(_query IN NATURAL LANGUAGE MODE);
END
从两个表返回,但以某种方式按 ID 排序:
BEGIN
SELECT
dictionary.id,
dictionary.`term`,
dictionary.`definition`,
links.id,
links.`name`,
links.`url`
FROM itDictionary dictionary
LEFT JOIN itRelatedLinks links ON links.term_id = dictionary.id
WHERE MATCH(dictionary.term, dictionary.definition)
AGAINST(_query IN NATURAL LANGUAGE MODE)
OR MATCH(links.name)
AGAINST(_query IN NATURAL LANGUAGE MODE);
END
我接近了吗?
【问题讨论】:
标签: mysql match match-against against