我的查询如下:
SELECT id, name,
MATCH (name) AGAINST (%serach term%) as relevance,
address
FROM table
我得到的相关结果介于5.1和14.0之间。我想按相关性进行排序,但也要按其他字段排序,所以我想稍微整理一下相关性。
我得到了这样的工作:
SELECT id, name,
round(MATCH (name) AGAINST (%serach term%),0) as relevance,
address
FROM table
这将它舍入到最接近的整数。
但是,理想情况下,我真的想知道哪些是10以上,哪些低于10并且这是唯一的区别因素。
所以:1,5,5,9.9将全部“回合”到10。 然后,10.1,14.1将全部“舍入”到20。
或者它可以是0和1.或0和10,或0和20。
我不知道该怎么做,或者甚至可能。我一直在看天花板()和圆形(),但我无法弄明白。
答案 0 :(得分:0)
尝试CASE WHEN
SELECT id, name,
CASE WHEN MATCH (name) AGAINST (%serach term%) <= 10 THEN 10
WHEN MATCH (name) AGAINST (%serach term%) > 10 THEN 20
END as relevance,
address
FROM table