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であると仮定します。そこからは、基本的な低<評価<高のクエリロジックです。