使用sqldb rawQuery和问号(?)参数

时间:2012-04-11 19:08:00

标签: android sqlite

我正在尝试使用?s作为构建查询的参数,但显然它有问题。希望文档至少提供一个示例......

SQLDb.rawQuery("SELECT C.?, B.?, B.?, B.? FROM ? C, ? B  WHERE C.? = B.?", new String[] 
               {Tables.CATEGORIES_NAME, Tables.BUDGET_DATE, Tables.BUDGET_VALUE, Tables.KIND, Tables.CATEGORIES, Tables.BUDGET, Tables.CATEGORIES, Tables.TABLE_ID, Tables.TABLE_ID});

这些const都是字符串,只是列的名称。我做错了什么?

2 个答案:

答案 0 :(得分:3)

?不能用于SQL查询的任意部分。它可用于WHEREORDER BY等中的值,但不能用于{{1}左侧的数据库名称,表名称,列名称等条款。

答案 1 :(得分:1)

不要在查询中使用?,而是使用String.format%s来填写查询中的表名和列名。