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。从那里开始,它只是基本的低点<评级<高查询逻辑。