Android SQLite,其中IN后跟变量字符串
我有变量字符串(用户可以通过带有复选框的ListView进行设置,因此字符串可以包含任意数量的水果) 我有以下SQLite查询Android SQLite,其中IN后跟变量字符串,android,string,sqlite,Android,String,Sqlite,我有变量字符串(用户可以通过带有复选框的ListView进行设置,因此字符串可以包含任意数量的水果) 我有以下SQLite查询 Cursor cursor = db.query (TABLE_NAME, new String[] { WOORD }, "kern IN (\"Banana\", \"Apple\")", null, null, null, null, null); 我想用变量替换查询的(\'Banana\',\'Appl
Cursor cursor = db.query (TABLE_NAME, new String[] {
WOORD },
"kern IN (\"Banana\", \"Apple\")", null, null, null, null, null);
我想用变量替换查询的(\'Banana\',\'Apple\')部分
我该怎么做
谢谢 只需像
Cursor cursor = db.query (TABLE_NAME, new String[] {
WOORD },
"kern IN (\""+var1+"\", \""+var2+"\")", null, null, null, null, null);
对于未知的VAR数量
inString="";
for(int i=0;i<fruits.length();i++)
{
inString=inString+"\""+fruits[i]+"\"";
if(i<(fruits.length()-1))
{
inString=inString+", "
}
}
Cursor cursor = db.query (TABLE_NAME, new String[] { WOORD },
"kern IN ("+inString+")", null, null, null, null, null);
inString=”“;
对于(int i=0;i如果要将变量放入选择
参数,可以使用拆分字符串,然后形成选择,如
StringBuilder sb = new StringBuilder();
sb.append("kern IN (");
String[] inItems = kernset.split("\\,\\s+");
for (int i=0; i < inItems.length; i++){
if (i > 0)
sb.append(", ");
sb.append("'" + inItems[i] + "'");
}
sb.append(")");
String selection = sb.toString();
StringBuilder sb=新建StringBuilder();
某人加上(“);
字符串[]inItems=kernset.split(“\\,\\s+”);
for(int i=0;i0)
某人加上(“,”);
sb.追加(““+inItems[i]+”);
}
某人加上(“)”;
字符串选择=sb.toString();
但是,如果您希望在选择中使用?
,并将其替换为selectionArgs[]
,这似乎是不可能的,因为在selectionArgs
中传递的值被“
包围。但是,您可以使用?
而不是实际值(如(?,?,?)
中的内核来形成选择然后通过selectionArgs[]
传递inItems
谢谢!我自己永远也不会想到这一点。我不得不添加sb.append(“)”
以获取结束日期)
。当前(工作)代码:`for(inti=0;i0)sb.append(“,”);sb.append(““+inItems[i]+””);}sb.append(“);字符串选择=sb.toString();`--请编辑您的解决方案以添加),以便我可以将其标记为正确。谢谢没问题=)很抱歉,我在复制未知变量数量的代码时错过了那一行;我收到错误,缺少代码>在第7行,inString不能解析为变量,表达式的类型必须是Array,但解析为String;在类似inString的行之后=inString+“,”;
StringBuilder sb = new StringBuilder();
sb.append("kern IN (");
String[] inItems = kernset.split("\\,\\s+");
for (int i=0; i < inItems.length; i++){
if (i > 0)
sb.append(", ");
sb.append("'" + inItems[i] + "'");
}
sb.append(")");
String selection = sb.toString();