gpt4 book ai didi

java - 如何在mysql中获取 "x highest value"

转载 作者:行者123 更新时间:2023-11-29 12:20:49 24 4
gpt4 key购买 nike

我还是 Java 和 stackoverflow 的初学者。

我用java为我的世界服务器编写了一个插件,使用mysql作为统计系统(杀死死亡点)

我想知道,如何才能获得“积分”最高的玩家,所以我喜欢获取“积分”最高的“玩家名”。我还想获得第二高、第三高等。

我使用了准备好的语句,例如:

public static int getPoints(String Playername) {
int Points = 0;
try {
PreparedStatement st = con
.prepareStatement("SELECT Points FROM FFA WHERE UUID = '"
+ PlayerUtil.getUUID(Playername) + "'");
ResultSet rs = st.executeQuery();
if (rs.next()) {
Points = rs.getInt("Points");
} else {
Points = 0;
}
} catch (SQLException e) {
e.printStackTrace();
}
return Points;
}

如果你能帮助我,那就太好了!感谢您的宝贵时间!

PS:我的 SQL 结构:

Playername varchar(64)
UUID varchar(64)
Kills int
Deaths int
Points int

最佳答案

您可以使用以下语句来执行此操作:

select playername from FFA order by points desc limit 10;

这将返回前 10 名玩家

或者你可以做类似的事情

select playername from FFA where points >= 1337 order by points DESC;

然后您可以循环调用 rs.next() 来遍历每个条目。首次使用 rs.next() 获取将为您提供更多积分的玩家,因为您使用了 order by

所以代码看起来像这样:

public static String getTopPlayer() {
int limit = 10;

try {
preparedstatement st = con
.preparestatement("select * from FF order by points desc limit "
+ limit);
resultset rs = st.executequery();
if (rs.next()) {
name = rs.getString("playername");
//if rs.next() rs.getString("playername"); <-- returns second
//if rs.next(); rs.getString("playername"); <-- returns third
} else {
name = null;
}
} catch (sqlexception e) {
e.printstacktrace();
}
return name;

关于java - 如何在mysql中获取 "x highest value",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29048011/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com