0

私の質問は、Android用のsqlite構文に関連しています。指定されたレベルよりも大きなレベルのキー値を持つデータをフェッチしたいクエリがあります。たとえば、指定されたIDは134.2であり、フェッチされるレコードはこれらの134.2.5または134.2.98のようになります。問題は、構文で何かが失われ、結果として何も得られないことです。これが私のコードです。前もって感謝します。

これがお役に立てば幸いです。SELECT * FROM TASKS WHERE FATHER_ID = FID+"。"+"%"+"。"

return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE,
            KEY_BODY,KEY_location  , KEY_GOAL_DATE,KEY_ABSOLUTE_DATE, KEY_DATE_CURRENT ,KEY_PRIO,KEY_DONE, KEY_CATEGORY,KEY_TIME_SPEND,KEY_POSOSTO, KEY_FATHER, KEY_TODAY, KEY_NOTIFY,KEY_NUMBER_OF_DAYS, KEY_NOTICE_CHECK }, KEY_FATHER + " LIKE " + "'"+ id+"'"+"'"+".'"+"'" +"%'"+"'"+".'", null, null, null, null);
4

3 に答える 3

2

キー比較式を作成する方法が複雑すぎるようです。また、クエリ パラメータである必要があるため、引用についてあまり心配する必要はありません。

return mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE,
            KEY_BODY,KEY_location  , KEY_GOAL_DATE,KEY_ABSOLUTE_DATE, KEY_DATE_CURRENT ,KEY_PRIO,KEY_DONE, KEY_CATEGORY,KEY_TIME_SPEND,KEY_POSOSTO, KEY_FATHER, KEY_TODAY, KEY_NOTIFY,KEY_NUMBER_OF_DAYS, KEY_NOTICE_CHECK }, KEY_FATHER + " LIKE ?", new String[] { id + ".%" }, null, null, null);
于 2012-12-28T16:14:09.407 に答える
0

多分あなたはこれが欲しかった:

mDb.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_TITLE,
            KEY_BODY,KEY_location  , KEY_GOAL_DATE,KEY_ABSOLUTE_DATE, KEY_DATE_CURRENT ,KEY_PRIO,KEY_DONE, KEY_CATEGORY,KEY_TIME_SPEND,KEY_POSOSTO, KEY_FATHER, KEY_TODAY, KEY_NOTIFY,KEY_NUMBER_OF_DAYS, KEY_NOTICE_CHECK },KEY_FATHER + " LIKE " + "'"+ id+".%'", null, null, null, null);
于 2012-12-28T16:15:49.163 に答える
0

交換してみる

+ " LIKE " + "'"+ id+"'"+"'"+".'"+"'" +"%'"+"'"+".'"

+ " LIKE " + "'" + id + ".%'"
于 2012-12-28T16:13:35.490 に答える