2013-03-22 53 views
0

我有一个表在MySQL数据库中,看起来像这样的MySQL的行:10%返回给定值

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

现在,如果我有一个给定值,说13,我怎么会去返回所有评级在10%以内的行都是13?

回答

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

这将很好地工作。

3
SELECT * FROM mytable WHERE rating BETWEEN ? * 0.90 AND ? * 1.10 
+0

这将不会返回。 – hjpotter92 2013-03-22 01:10:31

0
low = min(0, 13 * .9) 
high = max(25, 13 * 1.10) 

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