怎样将数组作为sql中in的查询条件?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样将数组作为sql中in的查询条件?相关的知识,希望对你有一定的参考价值。

select * from table where id in('tmp')
** tmp的值来自前台文本输入框,文本框中的数据每次都不一样,个数也不相同,均用“,”分隔开。怎么在数据库查询出这些值所在行的信息

/*虽然问题已经提问蛮久了,但是刚好最近自己也遇到这个问题,就把自己的解决方法贴出来吧
这个是用C#写的,原理都是一样的。*/  
      
        string kk = "tt,oo,pp";    //假设从文本框获取的值是字符串kk
        string[] b = kk.Split(',');    //将字符串中的","除去后存入数组里
        string endstr = "";
        for (int i = 0; i < b.Length; i++)  //根据数组的元素个数判断循环次数
        
            kk = "'" + b[i] + "'";  //在每个元素前后加上我们想要的格式,效果例如:
            // " 'tt' "
            if (i < b.Length - 1)  //根据数组元素的个数来判断应该加多少个逗号
            
                kk += ",";
            
            endstr += kk;
        
        string sqlstr = "select * from tablename where xxx in(" + endstr + ")";
   //最后 select * from tablename where xxx in ('tt','oo','pp')

如果还有更好的办法,也欢迎各位网友能够指教,谢谢!祝各位生活愉快,工作顺利!

参考技术A

您好:

您可以试试

select * from table where id in("+传入的变量+")

这是组合SQL语句,只需要考虑最后的SQL内容就可以了。。。 

追问

我试试

参考技术B

拼接一下进行了

String[] tmps=tmp.split(",");
 String tmp="";
for(int i=0;i>tmps.length;i++)
      tmp+="'"+tmp[i]+"'";
       if(i<tmp.length-1)
       tmp+=",";
     

String sql="select * from table where id in("+tmp+")";

参考技术C String[] tmps = new string[2];
tmps[0] = "1";
tmps[1] = "2";
String tmp = "";
for (int i = 0; i<tmps.Length; i++)

tmp += "'" + tmps[i] + "'";
if (i < tmps.Length - 1)

tmp += ",";


//string str ="'1','2',";
string strda = string.Format("select * from tb_jieguo where id in("+ tmp+ ") ");

以上是关于怎样将数组作为sql中in的查询条件?的主要内容,如果未能解决你的问题,请参考以下文章

使用“IN”命令将数组作为要在 SQL 查询中使用的参数传递

将附加条件附加到查询

C# WPF SQL 多条件查询

sql怎么用查询结果作为条件进行查询

sql中引用一个表的查询结果作为条件来查询另一个表如何实现?

SQL查询中IN语句条件为一个数组如何进行查询?(ASP提示类型不匹配)