提问人:Aloof aloof 提问时间:9/30/2022 更新时间:2/4/2023 访问量:97
火柴。。AGAINST in where 和 order by 子句,但不在 select 中
MATCH..AGAINST in where and order by clause but not in select
问:
表 t 的 FTS 索引位于 上。我想根据与术语匹配的分数对行进行排序。但我不希望分数显示在结果中。col1, col2
我尝试了以下查询,但它给出了一个错误。
SELECT * FROM t WHERE MATCH(col1,col2) AGAINST(term1, term2) AS score ORDER BY score, col3
这里给出了一个错误。AS score
只有这似乎有效:
SELECT t.*, MATCH(col1,col2) AGAINST(term1, term2) AS score FROM t WHERE MATCH(col1,col2) AGAINST(term1, term2) ORDER BY score, col3
任何想法如何在 where 中使用查询并按子句排序而不在选择列表中使用它?MATCH..AGAINST
答:
0赞
Aloof aloof
2/4/2023
#1
发布@Shadow的建议。
我们将不得不按子句的顺序重复该表达式。
SELECT * FROM t WHERE MATCH(col1,col2) AGAINST(term1, term2) ORDER BY MATCH(col1,col2) AGAINST(term1, term2), col3
这将重复计算 .MATCH(col1,col2) AGAINST(term1, term2)
评论