业务中遇到在查询时需要结合多个字段并且有逻辑关系时,需要根据计算得到的值作为排序条件。
实现:
例如在社区评论这类业务中,一条评论数据包含‘ 点赞 ’和‘ 回复 ’的属性,这个时候返回数据的顺序需要根据这两个属性的比重进行排序。
#根据questionId查询其下面的评论数据,排序规则为评论点赞5:1
select *,(5*comment_number+likes_number)as hot
from community_answer
where question_id = #{id} order by hot desc