gpt4 book ai didi

具有差异化排名的跨多个表的 MySQL 全文搜索

转载 作者:行者123 更新时间:2023-11-29 01:00:02 25 4
gpt4 key购买 nike

我目前有 3 个表(社区、城市、州),我正在尝试列出给定搜索词的前 10 个最佳匹配项(如果不是实际匹配项)。我需要做的是拥有它,这样如果有邻居名称匹配,它的排名就会高于城市名称匹配。让我感到困惑的是,如果它找到了一个街区,我需要它给我街区、城市和州,但如果它是一个城市,只需给我城市和州。

这就是我目前所拥有的,它只为我提供了城市比赛。如何将社区混合到这些结果中?

SELECT c.id_city, c.city_name, s.state_abbreviation, 
MATCH(c.city_name) AGAINST ('term') AS score
FROM `res_geo_cities` AS c, `res_geo_states` AS s
WHERE MATCH(c.city_name) AGAINST ('term' IN BOOLEAN MODE)
AND s.id_state = c.id_state
ORDER BY score DESC
LIMIT 7

最佳答案

对不同的查询使用并集,并按排名对它们进行排序。

(query1) UNION (query2) ORDER BY score DESC

保持查询中字段的数量和顺序相同。 - http://dev.mysql.com/doc/refman/5.0/en/union.html

关于具有差异化排名的跨多个表的 MySQL 全文搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3933561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com