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