简体   繁体   English

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

[英]Return MySQL rows within 10% of a given value

I have a table in a MySQL database that looks like this: 我在MySQL数据库中有一个表,如下所示:

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

Now if I had a given value, say 13, how would I go about returning all the rows where the rating is within 10% either way of 13? 现在,如果我有给定的值,例如13,我将如何返回所有评级在10%以内的行(以13的方式)?

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

That will work perfectly. 那将完美地工作。

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

assuming maximum rating is 25. From there it's just basic low < rating < high query logic. 假设最高评分为25。从那里开始,只有基本的低<评分<高查询逻辑。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM