0

我的问题与 android 的 sqlite 语法有关。我有一个查询,我想在其中获取一些具有比给定级别更大的键值的数据。例如,给定的 id 是 134.2,将获取的记录类似于 134.2.5 或 134.2.98。问题是我在语法中丢失了一些东西,结果我什么也得不到。这是我的代码。先感谢您。

我希望这会有所帮助。从 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

尝试更换

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

+ " LIKE " + "'" + id + ".%'"
于 2012-12-28T16:13:35.490 回答
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 回答