我正在尝试使用?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都是字符串,只是列的名称。我做错了什么?
答案 0 :(得分:3)
?
不能用于SQL查询的任意部分。它可用于WHERE
,ORDER BY
等中的值,但不能用于{{1}左侧的数据库名称,表名称,列名称等条款。
答案 1 :(得分:1)
不要在查询中使用?
,而是使用String.format
和%s
来填写查询中的表名和列名。