【问题标题】:Ordering SQLite3 Database greatest to least从大到小排序 SQLite3 数据库
【发布时间】:2020-05-30 10:02:40
【问题描述】:

我正在尝试创建一个不和谐命令,该命令使数据库的一列从最大到最小并获得前 10 个结果,它可以正常工作,但不是按照从最大到最小的顺序打印。

cursor.execute(f"SELECT bal, user_id FROM moneyTable WHERE guild_id = {ctx.guild.id} ORDER BY bal DESC LIMIT 10")
result = cursor.fetchall()
print(result)

我的结果是

[('635', '673990922945560599'), ('400', '317652126471815168'), ('200', '323669516489850882'), ('15000', '539305505445642250'), ('1260', '448573840893804614'), ('1000', '531664615755612161'), ('100', '419300570235666432'), ('100', '412106756349624331'), ('100', '408674114958524417'), ('100', '358517557772156929')]

【问题讨论】:

    标签: python python-3.x sqlite discord.py discord.py-rewrite


    【解决方案1】:

    bal 的数据类型似乎是TEXT,所以它是按字母顺序排列的。
    您必须通过添加 0 或显式将 bal 转换为整数:

    SELECT bal, user_id 
    FROM moneyTable 
    WHERE guild_id = {ctx.guild.id} 
    ORDER BY bal + 0 DESC LIMIT 10
    

    或:

    SELECT bal, user_id 
    FROM moneyTable 
    WHERE guild_id = {ctx.guild.id} 
    ORDER BY CAST(bal AS INTEGER) DESC LIMIT 10
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      • 2010-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-28
      相关资源
      最近更新 更多