2013-02-04 61 views
1

键开始考虑:存储为一个简单的字符串DatabaseEntry键值 记录,按键的样子:BDB选择记录,其中有

  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上时停止。

回答

0

您需要使用辅助数据库。辅助数据库的想法是为每条记录提供附加标准。因此,举例来说,您需要提供辅助密钥创建者,它将采用“NODE_1_PROP_1”,并返回“NODE_1”作为辅助密钥。然后,您可以查询辅助数据库中的“NODE_1”,它将返回所有以“NODE_1”为关键字前缀的记录。关键是您不仅使用密钥,而且还要记录任何适当的内容。确保你允许在二级数据库中分类重复。

HTH。

+0

谢谢,但使用辅助键不是我的选择。 –

0

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