当前位置: 首页 > 知识库问答 >
问题:

为什么我的sql表将1000视为中间数?

贺景山
2023-03-14

当我尝试按值降序排序时,我的SQL表是否正确,但如果它看到例如“1000”,它总是将其放在中间?例如:

这甚至发生时,我引用它在龙头(我使用它的插件)它输出相同的方式

这是我在插件中的调用方式:

PreparedStatement statement = database.getConnection().prepareStatement("SELECT uuid FROM player_stats ORDER BY blocks_broken DESC");
                        ResultSet rs = statement.executeQuery();
                        while (rs.next()) {
                            String name = rs.getString("uuid");
                            LeaderboardCommand.name = name;
                            String player = String.valueOf(Bukkit.getPlayer(UUID.fromString(name)));
                            p.sendMessage(player);

我知道这并不完美,因为我目前只是在学习/实验数据库,但我主要是想寻求帮助,了解为什么SQL以这种方式输出

我认为图像被窃听了,但链接应该可以工作

编辑:任何长度超过1个字符的数字也是同样的问题

共有1个答案

楚宇
2023-03-14

这是因为block\u broken type是varchar而不是数字。

在这种情况下,您是按词法排序,而不是按数字排序。

您可以更改查询,将其作为带有显式转换的数值处理,因此您的查询应该是:

 SELECT uuid FROM player_stats ORDER BY cast(blocks_broken as numeric) DESC
 类似资料:
  • 问题内容: 为什么用Java将24 * 60 * 60 * 1000 * 1000除以24 * 60 * 60 * 1000不等于1000? 问题答案: 因为乘法会溢出32位整数。64位还可以: 显然,在乘法溢出之后,除法不会“撤消”该溢出。

  • 问题内容: 今天,我遇到了一个很奇怪的问题。我需要计算数字的字符串长度,所以我想出了这个解决方案 这是基于数学公式 10 n n(在这里解释) 但是我发现在C语言中 是 不是 等于 但应该如此。 我什至用这段代码在Java中尝试了同样的事情 但它的行为方式相同。 故事还在继续。执行此代码后 我懂了 因此,该错误似乎发生在每1000个倍数上。 我向我的C老师展示了这一点,他说这可能是由于日志分割期间

  • 问题内容: 我有一个类Hra1,它定义了游戏规则(game = hra)。问题是,尽管在构造函数中创建了poleMinci数组,但我得到的是空值,例如poleMinci == null。换句话说,玩家的move方法始终返回false。 构造函数: 球员的移动方法: 问题答案: 您正在阴影变量: 在该构造函数中,由于poleMinci是在构造函数内部声明的,因此仅在构造函数内部可见。如果您在类中具有

  • 这里是SQL初学者,在我的大学课程中,我们有以下模式。 学生(snum:整数,sname:字符串,专业:字符串,级别:字符串,年龄:整数) 类(名称:字符串,meets_at:字符串,房间:字符串,fid:整数) 已注册(snum:整数,cname:字符串) 教员(fid:整数,fname:字符串,deptid:整数) 其中一个练习如下: 找出同时参加两个班的所有学生的名字。 下面是它的SQL语句

  • 问题内容: 有一个很大的材料了有这表明印刷异常的堆栈跟踪是不好的做法。 例如从Checkexp中的RegexpSingleline检查: 可以使用此检查来查找常见的不良做法,例如调用ex.printStacktrace() 但是,我正在努力寻找能够给出正当理由的任何地方,因为肯定可以使堆栈跟踪对于跟踪导致异常的原因非常有用。我知道的事情: 最终用户永远不应看到堆栈跟踪(出于用户体验和安全目的) 生

  • 问题内容: 在我们尝试投射包含以下内容的序列的序列时,如下所示 ,我经常看到错误消息 我知道值不能转换为整数。但是我对这种情况下的抛出感到好奇。它说 float NaN不能转换为整数。 为什么将值视为浮点对象有任何特定的原因?还是这种情况与显示的错误消息有关? 问题答案: 简短的答案是IEEE 754指定为一个值。 至于您应该如何将转换为特定的数值数据类型,我更喜欢在可能的地方使用。以下示例说明了