android – 如何在sql查询中传递逗号分隔的字符串值?

我创建一个与数据库相关的应用

在这个我创建简单的数据库并使用in sql查询从数据库中获取值.

我的问题在于我得到了像“2,6,8,9,10”这样的字符串.
首先我将这个字符串拆分并存储在一个arraylist中.用逗号.
在这个arraylist后我与逗号合并,如2,6,8,9,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,6,8,9,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,6,8,9,10');

所以我无法运行查询,因为原因中的传递值不同.
在上面的查询工作正常,因为它像ain(2,6,8,9,10)
在第二个它看起来像ain(‘2,6,8,9,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,tm.topic_no,td.topic_id,td.name FROM topicmaster tm ,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,tm.topic_no,td.topic_id,td.name FROM topicmaster tm ,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,tm.topic_no,td.topic_id,td.name FROM topicmaster tm ,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+")";
点赞