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_2の前に配置されます。これは、文字列をキーとして使用した場合の問題です。

于 2013-03-15T20:03:17.897 に答える
0

セカンダリ データベースを使用する必要があります。セカンダリ データベースの考え方は、すべてのレコードに追加の基準を提供することです。したがって、あなたの例では、「NODE_1_PROP_1」を受け取り、「NODE_1」を二次キーとして返す二次キー作成者を提供する必要があります。次に、セカンダリ データベースに "NODE_1" をクエリすると、キー プレフィックスとして "NODE_1" を持つすべてのレコードが返されます。重要な点は、キーを使用するだけでなく、レコードの適切なコンテンツを使用することです。セカンダリ データベースで並べ替えられた重複を許可していることを確認してください。

HTH。

于 2013-03-14T22:48:08.403 に答える