Java mysql十进制排序错误

标签 java mysql jdbc

我好像遇到了什么问题。我正在为我的世界 bukkit 服务器创建一个“经济”系统。

我想先按“最富有”来订购餐 table ,但收到的订单不同。当我通过 phpMyAdmin 运行 SQL 时,它以正确的顺序接收

enter image description here

enter image description here

public static HashMap<String, Double> topPlayers(String economyKey) {
    sql.build("SELECT b.balance, p.username FROM " + sql.prefix
            + "players p INNER JOIN " + sql.prefix + "balances b ON p.id=b.user_id WHERE economy_key=? ORDER BY b.balance DESC LIMIT 0,5");
    String[] params = { economyKey };

    ResultSet results = sql.executePreparedQuery(params);
    HashMap<String, Double> players = new HashMap<String, Double>();
    try {
        while (results.next()) {
            players.put(results.getString("username"), results.getDouble("balance"));
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }

    return players;
}

最佳答案

您正在使用未排序的 HashMap。尝试使用 List或任何其他有序数据结构 - 它会解决您的问题。

关于Java mysql十进制排序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13898931/

相关文章:

Java Hashtable多次访问问题

mysql - 无法在 Visual Studio 2017 中连接到 MySQL 数据源

mysql - 如何将 IN 条件转换为 INNER JOIN 条件 - 连接速度较慢

node.js - 使用 Node Lambda 通过 JDBC 连接到 AWS Athena 时遇到问题

java - Oracle/JDBC : Problem with correct Timezone of rows

java JDBC将多行插入表中

java - Gradle 构建失败 : Process 'Gradle Test Executor 1' finished with non-zero exit value 1

java - 如何在 FragmentStatePagerAdapter 中循环(从最后一个 fragment 到第一个 fragment )

java - 禁用自动调整 GridBagLayout 大小 (Java)

php - 在 php 中提交编辑表单后,日期返回 00 00 0000 值