我的SQLite数据库中有两列,名称和分数。我需要按照从最高值开始的分数显示所有表记录的输出。我现在有这个工作,但由于得分是一个字符串,当然它只是字符串中的第一个数字,所以30超过200等...
这是我的SQL代码:
private static final String fields[] = { "name", "score", BaseColumns._ID };
Cursor data = database.query("scores", fields, null, null, null, null, "score DESC");
我不知道如何继续使用上述代码以及将所有分数值转换为整数以便先按最高分数排序。我开始通过将每个得分值转换为整数并将其存储在数组中以对它们进行排序来实现这一点,但后来我只有一半的信息,所以这是一个坏主意,我没有想过。
我花了大约一个小时阅读SQLite文档,以便寻求一些方法来更有效地执行此操作以及搜索Stackoverflow,但无济于事。任何人都可以就如何继续这样做提供建议吗?
答案 0 :(得分:1)
我认为正确的答案是将它们存储为正确的类型,因为在INSERT时只执行一次。为什么每次查询和显示时都要重新格式化?对我毫无意义。
答案 1 :(得分:1)
这个answer通过在查询中将字符串转换为整数来解决问题。这比在程序中执行更好,因为数据库是为存储和排序大量数据而构建的,因此更改查询比代码更有效。