我正在尝试运行使用rawquery来运行带有主键别名的查询以使其成为_id,以便我可以使用SimpleCursorAdapter,这就是我所拥有的:
String sel = DatabaseListDB.COLUMN_DATABASE_NAME;
Cursor results = db.rawQuery("SELECT ? as _id FROM DatabaseList",
new String[] {sel});
在我的SqlLiteHelperClass
中public static final String COLUMN_DATABASE_NAME = "databaseName";
是我想要的列名和主键。问题是,当我运行此查询时,结果会将'databaseName'作为表中的值而不是实际值。 我可以将查询作为
运行Cursor results = db.rawQuery("SELECT databaseName as _id FROM DatabaseList",
null);
它工作正常,我不知道为什么我不能正确使用选择标记。任何人都可以帮我解决这个问题吗?
答案 0 :(得分:2)
?
应该用于 WHERE 参数。在您的情况下,您只需将查询更改为:
Cursor results = db.rawQuery(String.format("SELECT %s as _id FROM DatabaseList", sel));
答案 1 :(得分:1)
从developer.android.com
,你只能把“?” on where子句,而不是您要查询的列: