我创建一个与数据库相关的应用
在这个我创建简单的数据库并使用in SQL查询从数据库中获取值.
我的问题在于我得到了像“2,6,8,9,10”这样的字符串.
首先我将这个字符串拆分并存储在一个arraylist中.用逗号.
在这个arraylist后我与逗号合并,如2,10这个.
我做的很好.
我在查询中使用此字符串来从数据库中获取值.
我的疑问是
SELECT tm.icon,tm.topic_no,td.topic_id,td.name FROM topicmaster tm,topicmaster_description td WHERE td.topic_id =tm.topic_id AND td.langid='3' AND tm.oraganisationid ='1' AND td.topic_id in(2,10);
这个.
SELECT tm.icon,topicmaster_description td WHERE td.topic_id =tm.topic_id AND td.langid='3' AND tm.oraganisationid ='1' AND td.topic_id in('2,10');
所以我无法运行查询,因为原因中的传递值不同.
在上面的查询工作正常,因为它像ain(2,10)
在第二个它看起来像ain(‘2,10’)
那么该怎么办.
如何从字符串中删除这个’`
首先我分裂字符串
//getTopicFile ArrayList with public ArrayList<String> getAssignTopicArrayList(String passstring) { ArrayList<String> rtnArrayList=new ArrayList<String>(); try { StringTokenizer strTokens = new StringTokenizer(passstring,","); while (strTokens.hasMoreElements()) { rtnArrayList.add(String.valueOf(strTokens.nextToken())); } } catch (Exception ex) { ex.printstacktrace(); System.err.println("Error in Fetch ArrayList-->"+ex.toString()); } return rtnArrayList; } //getTopicFile ArrayList with
在我合并New String之后
genHelper.showErrorLog("Assign Topic-->"+chapterassignTopicName); ArrayList<String> getTopicList=genHelper.getAssignTopicArrayList(chapterassignTopicName); String passConcat = ""; for (int i = 0; i < getTopicList.size(); i++) { System.out.println("Topic List--->"+getTopicList.get(i)); if(getTopicList.size()==1) { passConcat=passConcat.concat(String.valueOf(getTopicList.get(i))); } else { if(getTopicList.size()-1 == i) { System.err.println("value if --> " + i); passConcat=passConcat.concat(String.valueOf(getTopicList.get(i))); }else { System.err.println("value else--> " + i); passConcat=passConcat.concat(String.valueOf(getTopicList.get(i)).concat(",")); } } } genHelper.showErrorLog("PassConcat String-->"+passConcat);
然后我得到了New String并在下面传递查询
String topicQuery="SELECT tm.icon,topicmaster_description td WHERE td.topic_id =tm.topic_id AND td.langid='"+LanguageActivity.languageId+"' AND tm.oraganisationid ='"+genHelper.loadPreferences(String.valueOf(R.string.sharePrefin_Login_organizationid))+"' AND td.topic_id in('"+passConcat+"')";
解决方法
不应该
String topicQuery="SELECT tm.icon,topicmaster_description td WHERE td.topic_id =tm.topic_id AND td.langid='"+LanguageActivity.languageId+"' AND tm.oraganisationid ='"+genHelper.loadPreferences(String.valueOf(R.string.sharePrefin_Login_organizationid))+"' AND td.topic_id in('"+passConcat+"')";
是
String topicQuery="SELECT tm.icon,topicmaster_description td WHERE td.topic_id =tm.topic_id AND td.langid='"+LanguageActivity.languageId+"' AND tm.oraganisationid ='"+genHelper.loadPreferences(String.valueOf(R.string.sharePrefin_Login_organizationid))+"' AND td.topic_id in("+passConcat+")";