我的 mysql 查询语法有一个奇怪的问题。我制作了一个系统,当用户获得一定数量的积分时,它会向他们显示特定的排名。
例如
当他们有1000或更多积分时,他们是1级
3000或更多积分,他们是2级
5000或更多积分,他们是3级
8000或更多积分,他们是4级
9000或更多积分,他们是5级。
Mysql 表结构:
表名:rank 结构: pts , rankname
mysql查询如下:
$result = mysql_query("SELECT * FROM rank WHERE pts <= '$userpts' ORDER BY pts DESC LIMIT 1")
or die(mysql_error());
$row = mysql_fetch_array($result);
if($row){
$rank = $row['rankname'];
echo $rank;
}
但是出现了一个奇怪的问题,当用户积分超过 10,000 点时,他们应该获得 5 级的排名,但他们获得了 1 级的排名(1000-2999 点之间的用户获得)
不知道发生了什么,他们应该获得 5 级.
(P/S 当用户有 8500 点时,他们会获得 4 级,这意味着低于 10k 的点可以很好地获得排名)
我的查询逻辑有什么问题吗?我自己也很困惑。