业务背景:音乐节拍要找最符合范围的数据,而音乐节拍是有一个数字类型的适用范围值的。
SELECT
title,min_bpm,max_bpm,
((min_bpm<=15)+(max_bpm>=15)) as mix,
((15-min_bpm)+(max_bpm-15)) as length
FROM `tablename`
order by mix desc,length asc
limit 10
因为在mysql中,true为1,false为0,因此对条件求和可以得到匹配的搜索条件数.mix使它们“最接近匹配”
length主要计算步长,按步长排序是在mix的基础上做多一层更准确一点的排序