我的问题与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);
答案 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);