我正在学习Android开发。我有一个名称和金额的IOU表。因此,在多次输入数据库表后,你会得到类似的结果:
name1 50
name2 25
name1 10
name3 60
......
我的问题是,从表中提取条目并在Adroid应用程序中将它们排序为数组的最佳方法是什么。
例如,Array1 [] name1 = [50,10,...]其中50和10是与DB中name1关联的数量。
我不能只使用SELECT * FROM table WHERE name = name1
因为名称会改变而且会增加。我从这个SO问题中听到:
How to store arrays in a database?
动态生成表并不是一个好主意。
答案 0 :(得分:2)
我想你想要一个这样的查询:
SELECT * FROM table ORDER BY name
或
SELECT * FROM table ORDER BY amount
也就是说,如果您想要所有行,则不需要WHERE子句。 ORDER BY子句可以为您进行排序。
然而:您确定需要将所有数据拉入数组 - 特别是如果数据库可以进行所需的排序吗?另一种方法是打开一个光标,然后一次做一行所需的任何处理。
编辑:另一个例子(基于你的评论;我没有对此进行过测试):
SELECT name, SUM(amount) FROM table GROUP BY name ORDER BY name
将为数据库中的每个唯一名称提供一行,其中每个金额的总和与该用户相关联。对于您在上面发布的示例,这将导致以下行:
name1 60 // The sum of the two rows that have name="name1"
name2 25
name3 60