在Android中,我能否在游标上执行SQL查询?

6

我可能会在我的数据库上选择多个过滤器,因此我想查询数据库以获取光标,然后在该光标上进行查询以返回另一个光标。

3个回答

5

您不能在游标上执行查询。游标是查询的结果,而不是查询的来源。您需要为原始游标获取的相同位置进行新的查询,使用指定新数据集的新参数。


3

您需要使用内部循环来过滤记录,这是其中之一的选项。

为此,您需要首先在cursor1中获取记录,并在内部循环中使用第一个Cursor的值并再次查询cursor2。

编辑

1)如果您只想要特定列,则可以在db.query()方法中进行过滤。 例如

Cursor curTaskList = db.query("tablename", new String[]{"col1", "col2"}, null, null, null, null, null);

2) 如果您想要特定的行,则可以在db.query()方法中进行过滤 例如:

Cursor curTaskList = db.query("timebasedlist", null, "col1 = ? AND col2 = ?", new String[]{"val1", "val2"}, null, null, null);

所以不需要在游标上进行查询

您可以在单个查询中进行筛选

如果您的游标有多行,您可以使用循环逐行获取


您可以同时打开多个游标。您可以在程序逻辑的任何时候从任何打开的游标中“提取”数据。 - James Anderson
那么我如何在游标1上执行查询? - Seth Hikari

1

你可以将查询存储为文本,并使用它们创建新的游标吗?


我不明白它的流程是怎样的?查询光标,保存为文本,解析文本,转换为光标? - Seth Hikari
就是这样。所以你会有一个循环来创建寻找过滤器的光标,在那个循环中,你会读取过滤器,使用它创建基于该过滤器的第二个光标,进行记录读取,然后回到第一个循环来获取下一个过滤器,以此类推。 - Ben Williams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接