mySQL查询 - 查找点在哪里?

时间:2013-12-16 04:20:21

标签: mysql find where

让我们说,这是我的数据库结构:

id, group_name, points_needed;

这些是样本记录:

1, "Newbie", 0,
2, "Amatour", 100,
3, "Expert", 500,
4, "Pro", 100;

但是,我不知道如何找到适合我当前点的group_name。假设我有120个等级点。因此,如上例所示,我应该标记“Amatour”。但是,如何在我的数据库中找到此标记? ([B]的MySQL [/ B])。

我虽然使用WHERE并将其分组,但如果我想寻找更大的价值,我会想念“Amatour”的记录。如果我想寻找更小的值,我会得到这个记录,但这必须是动态查询,所以如果我有100分,我会寻找更小的值,我不会找到它。我是对的吗?

4 个答案:

答案 0 :(得分:2)

SELECT group_name
FROM `YouDidn'tNameThisTable`
WHERE points_needed <= ?
ORDER BY points_needed DESC
LIMIT 1

答案 1 :(得分:1)

从表中选择*,其中points_needed&lt; = 120 order by points_needed limit 1。

答案 2 :(得分:1)

您可以使用&lt; =运算符并使用限制运算符将select查询限制为一条记录。

从yourtable_name中选择group_name,其中points_needed&lt; = your_points order by points_needed DESC limit 1

答案 3 :(得分:0)

如果你想要最新的记录,那么:

SELECT group_name FROM <tableneme> WHERE points_needed <=120 
ORDER BY points_needed DESC LIMIT 1

如果您想要旧记录,那么:

 SELECT group_name FROM <tableneme> WHERE points_needed <=120 
 ORDER BY points_needed ASC LIMIT 1