2

给定:存储为简单字符串 DatabaseEntry 键值的记录,键如下所示:

  1. NODE_1
  2. NODE_1_PROP_1
  3. NODE_1_PROP_2
  4. NODE_1_PROP_3
  5. NODE_2
  6. NODE_2_PROP_1
  7. NODE_2_PROP_2
  8. NODE_2_PROP_3

如何:仅选择 ID 以 NODE_1,结果 1-4 开头的记录?

我使用过 Cursor.getNext(),但 Cursor 类的一般问题是它会一直转到下一条记录,所以如果我这样做,我必须每次都评估键前缀以便在光标时停止将在 NODE_2 上。

4

2 回答 2

0

您需要使用辅助数据库。辅助数据库的想法是您为每条记录提供额外的标准。因此,鉴于您的示例,您需要提供辅助密钥创建者,它将采用“NODE_1_PROP_1”并返回“NODE_1”作为辅助密钥。然后您可以查询辅助数据库中的“NODE_1”,它将返回所有具有“NODE_1”作为键前缀的记录。关键是您不仅要使用密钥,还要使用记录的任何适当内容。确保您允许在辅助数据库中排序重复。

HTH。

于 2013-03-14T22:48:08.403 回答
0

我已经通过将字符串转换为二进制数组解决了这个问题,在这种情况下 NODE_1_PROP_1 会在 NODE_2 之前出现,这是我使用字符串作为键时的问题。

于 2013-03-15T20:03:17.897 回答