我有我想要选择的列的字符串数组:
String[] columns = {"col1", "col2", "col3"};
以后列可能会更改,但始终是可用列的子集。
我找不到允许我将此数组作为列传递的SQLiteDatabase
API。到目前为止,我唯一的解决方案是将,
列作为分隔符加入字符串,并将其添加到我的查询字符串中并执行rawQuery
。
有更好的解决方案吗?
修改
查询是JOIN
查询。
答案 0 :(得分:3)
SQLiteDatabase
中的query()
方法接受String[] columns
参数,这似乎是您正在寻找的东西。
使用字符串加入,
的原始查询也可以正常工作,这基本上就是query()
所做的事情。
哦,我忘了提到它也涉及加入
那么您最好的选择可能是rawQuery()
,而您自己正在构建SQL。 Android SQLite包装器API实际上不太灵活。
答案 1 :(得分:0)
你可以这样做 -
ArrayList<String> dynamicColumnList = new ArrayList<>();
//add column dynamically to the list
String columns[]= dynamicColumnList.toArray(new String[0]);
sqLiteDatabase.query("TableName",columns,"id",new String[]{id},null,null,null);
答案 2 :(得分:0)