android - 重新排序游标数据
问题描述
有没有办法从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");
有关参数的说明,请参阅查询。
您可以使用仅使用“SELECT * FROM your_table ( db.query("your_table,null,null,null,null,null,null,null);
) 提取的 Cursor 以编程方式执行此操作,但您必须构建结果,然后对结果提取进行排序(让 SQLite 为您完成更简单且可能更有效)。
还有其他的,例如构建MatrixCursor。
但是,您不能使用标准 API 重新排序或更改游标本身中的数据,因为游标旨在成为数据库查询的结果。它也被缓冲,因此可以访问数据库以检索其他数据。
推荐阅读
- dynamic-url - 将动态 URL 更改为静态 URL
- angular - Angular-CLI 在项目库中创建组件
- visual-studio-code - 模拟调试器如何控制调试器下一步的哪一行?
- python - 有没有办法在 Pycharm(Python 3.6)中将文件与文件夹分开?
- c# - 通过 4 个参数从 DB 中过滤值
- python - 比较 if 逻辑中的 python 熊猫框架
- reactjs - 如何为我的 react-konva 形状添加边框?
- javascript - 在不同的时间间隔隐藏或显示相关问题
- reactjs - 如何在屏幕中处理多个上下文状态?
- angular - 变量不会在视图中更新