SQL全文搜索结果排序问题:单关键词搜索时如何按id降序排列
解决MySQL自然语言全文搜索单关键词得分相同时按ID降序排序的问题
只需在查询的ORDER BY子句中同时指定匹配得分降序和ID降序,就能实现得分相同时按ID从大到小排列的需求。
修改后的完整查询语句:
SELECT *, MATCH (title, title_ar, title_en) AGAINST ('exemple' IN NATURAL LANGUAGE MODE) AS scor FROM `table` WHERE MATCH (title, title_ar, title_en) AGAINST ('exemple' IN NATURAL LANGUAGE MODE) ORDER BY scor DESC, id DESC;
关键说明
ORDER BY scor DESC确保匹配度高的结果优先展示;- 当多条记录的
scor值相同时,id DESC会让ID更大的记录排在前面,满足你的排序需求。
注意:如果你的表名确实是table,需要用反引号`包裹,避免和MySQL的保留字冲突。
内容的提问来源于stack exchange,提问作者Idris YOUSFI
相关产品推荐
相关产品推荐

