在搜索我的数据库时,我希望真正相关的结果(由我的布尔搜索返回的结果)排名,但同时我不希望完全省略一些不太相关(喜欢)的结果。
目前我的查询看起来像这样。
(SELECT *, MATCH (col1,col2,col3,col4) AGAINST (query* in boolean mode) AS score
FROM table where match(col1,col2,col3,col4) against (query* in boolean mode)
order by score DESC)
UNION (SELECT * from table where col1 like query
or col2 like query or col2 like query or col4 like query)
这将返回一个错误,指出给定的两个 select 子句具有不同数量的列。我理解这是因为在查询的第一部分中将“分数”作为列添加。
这个问题有解决方法吗?