【发布时间】:2019-11-13 05:12:46
【问题描述】:
有没有办法从 sqlite 游标加载一些数据,并使用自定义计算更新现有列数据并在 android studio 中按该列重新排序游标行?我不想将新数据提交到数据库。
谁能指出我正确的方向来实现这一目标?谢谢。
【问题讨论】:
有没有办法从 sqlite 游标加载一些数据,并使用自定义计算更新现有列数据并在 android studio 中按该列重新排序游标行?我不想将新数据提交到数据库。
谁能指出我正确的方向来实现这一目标?谢谢。
【问题讨论】:
您可以在使用表达式的派生值和适当的 ORDER BY 子句提取数据时执行此操作。
例如假设您在表中有名为 x 和 y 的列,并且它们具有数值,那么您可以添加一个派生列 z 可以从游标访问:-
SELECT x,y, x * y AS z FROM your_table ORDER BY z
在 android 中,这可能假设 db 是 SQLiteDatabase 的一个实例。
Cursor your_cursor = db.query("your_table", new String[]{"x","y","x * y AS z"},null,null,null,null,"z");
有关参数的说明,请参阅query。
您可以使用仅使用“SELECT * FROM your_table (db.query("your_table,null,null,null,null,null,null,null);) 提取的光标以编程方式执行此操作,但您必须构建结果然后对结果提取进行排序(让 SQLite 执行此操作更简单且可能更有效)你)。
还有其他的,比如建立一个MatrixCursor。
但是,您不能使用标准 API 重新排序或更改游标本身中的数据,因为游标旨在成为数据库查询的结果。它也被缓冲,因此可以访问数据库以检索其他数据。
【讨论】: