sqlite,android中的字符串查询

时间:2012-12-28 16:08:44

标签: android sqlite

我的问题与android的sqlite语法有关。我有一个查询,我想获取一些键值大于给定值的数据。例如,给定的id是134.2,并且将获取的记录就像这些134.2.5或134.2.98。问题是我在语法中丢失了一些东西,结果我没有得到任何结果。这是我的代码。提前谢谢。

我希望这有帮助。  选择 *  来自任务  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);

3 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

尝试替换

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

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

答案 2 :(得分: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);