Android sqlite JOIN 查询与 String[] 给出的 select 列
Android sqlite JOIN query with the select columns given by String[]
我有一个包含我想要的列的字符串数组 select:
String[] columns = {"col1", "col2", "col3"};
这些列将来可能会发生变化,但始终是可用列的一个子集。
我找不到 SQLiteDatabase
API 让我将此数组作为列传递。到目前为止,我唯一的解决方案是将使用 ,
作为分隔符的列进行字符串连接,并将其添加到我的查询字符串中并执行 rawQuery
.
有更好的解决方案吗?
编辑
查询是 JOIN
查询。
SQLiteDatabase
中的 query()
方法接受一个 String[] columns
参数,这似乎是您正在寻找的东西。
使用 ,
连接字符串的原始查询也可以工作,这基本上就是 query()
在幕后所做的。
Oh, I forgot to mention it involves a JOIN too
那么您最好的选择可能是 rawQuery()
并且 SQL 您正在构建自己。 Android SQLite wrapper API 真的不太灵活。
你可以这样做-
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);
可以使用SQLiteQueryBuilder
.
添加 JOIN
和 setTables
and pass the String array to projectionIn
argument of query
感谢@RalphBergmann。
我有一个包含我想要的列的字符串数组 select:
String[] columns = {"col1", "col2", "col3"};
这些列将来可能会发生变化,但始终是可用列的一个子集。
我找不到 SQLiteDatabase
API 让我将此数组作为列传递。到目前为止,我唯一的解决方案是将使用 ,
作为分隔符的列进行字符串连接,并将其添加到我的查询字符串中并执行 rawQuery
.
有更好的解决方案吗?
编辑
查询是 JOIN
查询。
SQLiteDatabase
中的 query()
方法接受一个 String[] columns
参数,这似乎是您正在寻找的东西。
使用 ,
连接字符串的原始查询也可以工作,这基本上就是 query()
在幕后所做的。
Oh, I forgot to mention it involves a JOIN too
那么您最好的选择可能是 rawQuery()
并且 SQL 您正在构建自己。 Android SQLite wrapper API 真的不太灵活。
你可以这样做-
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);
可以使用SQLiteQueryBuilder
.
添加 JOIN
和 setTables
and pass the String array to projectionIn
argument of query
感谢@RalphBergmann。