返回给定值的10%以内的MySQL行


Return MySQL rows within 10% of a given value

MySQL数据库中有一个表,如下所示:

   username   rating
1  xxxxxxxx     -1
2  xxxxxxxx      5
3  xxxxxxxx      14
4  xxxxxxxx      23
5  xxxxxxxx      12

现在,如果我有一个给定的值,比如13,我该如何返回评级在13的10%以内的所有行?

SELECT *
FROM `tblName`
WHERE `rating` BETWEEN 13 * 0.9 AND 13 * 1.1

这将非常有效。

SELECT * FROM mytable WHERE rating BETWEEN ? * 0.90 AND ? * 1.10
low = min(0, 13 * .9)
high = max(25, 13 * 1.10)

假设最大评级为25。从那里开始,它只是基本的低点<评级<高查询逻辑。