查询带有两个参数Android的where子句

时间:2012-07-11 16:52:52

标签: android

我想编写如下的查询,但会出现异常。

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_FATHER + " LIKE" + "'"+ "fid"+"'"+ "AND"+ KEY_ROWID + "LIKE" + "'"+ "uid"+"'", null, null, null, null);

任何知道where子句的正确语法的人都有两个与And相关的参数,Or.i还没有找到任何有用的东西。谢谢你提前!

3 个答案:

答案 0 :(得分:0)

如果你的代码字面上是书面的,你需要围绕sql关键字的空格:

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_FATHER + " LIKE " + "'"+ "fid"+"'"+ " AND "+ KEY_ROWID + " LIKE " + "'"+ "uid"+"'", null, null, null, null);

我不知道你是否可能遇到其他问题,因为你没有提供你所得到的错误,但如果你还没有看到它,至少应该解决问题。

答案 1 :(得分:0)

检查documentation,花点时间搜索好友..

答案 2 :(得分:0)

戈登给了你正确的答案。您的错误代码仍然缺少空格。另外,如果fid和uid是变量,那么你需要删除它周围的引号并使用类似的东西:

    KEY_FATHER + " LIKE " + fid + " AND "+ KEY_ROWID + " LIKE " + uid

希望这有帮助。