0

我的 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,但无济于事。任何人都可以就我应该如何继续这样做提供建议吗?

4

2 回答 2

1

我认为正确的答案是将它们存储为正确的类型,因为您只在 INSERT 时执行一次。为什么每次查询和显示都要重新格式化?对我来说毫无意义。

于 2013-05-06T14:50:34.490 回答
1

这个答案通过将字符串转换为查询中的整数来解决问题。这比在程序中执行要好,因为数据库是为存储和排序大量数据而构建的,因此更改查询比更改代码效率更高。

于 2013-05-06T14:53:46.110 回答