0

我的值为 15。

然后我有一个数据库,其中包含玩家的不同等级。

他们在我的排名表中有以下信息:

Level       CountFrom     CountTo
Level 1       0              9
Level 2       10             19
Level 3       20             29

如何在 sql 命令中拉出级别?

即我有:

SELECT *
FROM `ranks
WHERE `CountTo` <= '15'

这将拉动 1 级和 2 级作为结果。

我能想到的唯一方法是 OrderBy CountTo DESC 并将结果限制为 1。

有没有更好的办法?

4

2 回答 2

4

您也可以CountFrom在查询中使用。

SELECT *
FROM ranks
WHERE CountFrom <= 15 AND CountTo >= 15
  • 级别 1 将被排除,因为它的CountTo(9) 值为CountTo >= 15false。
  • 级别 2 将被包括在内,因为它的CountFrom(10) 为真 CountFrom <= 15,其CountTo(19) 为真CountTo >= 15
  • 级别 3 将被排除,因为它的CountFrom(20) 值是CountFrom <= 15错误的。
于 2013-09-23T14:31:33.393 回答
2

您可以使用 BETWEEN

SELECT *
FROM `ranks
WHERE '15' between `CountTFrom` and `CountTo`
于 2013-09-23T14:33:56.260 回答