我正在为网站编写搜索功能。我必须用我的查询搜索多个表,每个表都有不同的重要性级别。
这是我目前对查询的想法
SELECT id FROM table1
WHERE MATCH(name) AGAINST('keyword')
UNION
SELECT id FROM table2
WHERE MATCH(name) AGAINST('keyword')
...
...
我遇到的问题之一是将与关键字完全匹配的结果优先于其他结果。例如,如果我有:
id - name
1 - Central Park
2 - Park
如果我FULLTEXT
使用关键字对其进行搜索Park
,它将评估它们两者具有相同的相关性。但我总是想2 - Park
在结果之上。我想我可以通过订购来解决这个问题,LENGTH(name),
但是还有其他方法吗?