问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-09 07:28

我来回答

5个回答

懂视网 时间:2022-04-09 11:49

matDeptHisMonthPlanStore = Ext.data.StoreManager.lookup(‘matDeptHisMonthPlanStore‘); matDeptHisMonthPlanStore.proxy.extraParams = {‘PROCESS_STATUS_LIST_STRING‘ : ‘0,1,2,3‘ }; matDeptHisMonthPlanStore.currentPage = 1; matDeptHisMonthPlanStore.load();

控制层处理数据

String PROCESS_STATUS_LIST_STRING,
List<Integer> PROCESS_STATUS_LIST = new ArrayList<Integer>();
  if (StringUtils.isNotEmpty(PROCESS_STATUS_LIST_STRING)) {
  String[] split = PROCESS_STATUS_LIST_STRING.split(",");
  for (int i = 0; i < split.length; i++) {
   PROCESS_STATUS_LIST.add(Integer.valueOf(split[i]));
  }
  }

在实现层里写方法,使用SQL语句

if (PROCESS_STATUS_LIST != null && PROCESS_STATUS_LIST.size() > 0) {
  sql += " and PROCESS_STATUS_ in (:PROCESS_STATUS_LIST)";
  paramMap.put("PROCESS_STATUS_LIST", PROCESS_STATUS_LIST);
 }

 List<Object> result = new ArrayList<Object>();
 result.add(sql);
 result.add(paramMap);




 NamedParameterJdbcTemplate namedParameterJdbcTemplate = new NamedParameterJdbcTemplate(dmJdbcTemplate);
 return namedParameterJdbcTemplate.queryForList(sql, paramMap);

总结:控制层与实现层。控制层是作为前端数据与后端数据的交换,只是起转换传递作用。对具体的业务实现应放在实现层做处理。达到数据与业务的分离,各个方法作为独立的模块工作,互不干扰。对不是数据库的数据,只是做显示处理,以及保密性,可以放在控制层做处理

SQL语句中 = 比 in 的效率更高

对前台传回的list进行分割,并放在sql语句的in中

标签:

热心网友 时间:2022-04-09 08:57

/*虽然问题已经提问蛮久了,但是刚好最近自己也遇到这个问题,就把自己的解决方法贴出来吧
这个是用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')

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

热心网友 时间:2022-04-09 10:15

您好:

您可以试试

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

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

追问我试试

热心网友 时间:2022-04-09 11:50

拼接一下进行了

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+")";

热心网友 时间:2022-04-09 13:41

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+ ") ");
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
英语怎么辨别多音节和单音? 2016款标志4081.6t为什么现在冷车启动怠速只有900,以前都是1050左右... 高分悬赏: 批处理图片的问题~~~求高手 高分悬赏 本人想找一款免费的图片处理软件 高分悬赏怎样改变网页中的图片大小!! 洗衣机里放什么能吸毛毛 国产的美白护肤品有哪些比较好用? 有哪些平价又好用的抗皱精华? 敏感肌使用的精华有哪些推荐的? 《魔兽世界6隐藏坐骑获取攻略》(开启秘密之旅) 嘀嗒拼车提示一个设备不能登陆过多账号,怎么解决? 嘀嗒顺风金怎么用不了 星星冰柜219升一般要加制冷剂 苹果手机显示嘀嗒账号绑定过多不能登录怎么办 这个冰柜压缩机是加什么制冷剂? 给800升冰柜加R134制冷剂,怎么知道加够了呢 换过的冰柜压缩机,商标丢失,加什么制冷剂? 为什么我的嘀嗒软件每次下单都显示异地不能下单 778立升的冰柜大约加多少制冷剂 嘀嗒平台手机号被平台禁示接单可以换手机号继续下载至平台吗?_百度知 ... 我的嘀嗒限制接单是怎么回事? 美菱BC196冰柜加什么制冷剂? IE浏览器如何看当前版本和升级 电脑老说IE浏览器包含最新的内置Adobe flash,安装不了flash怎么办? 大人不计小人过下一句是什么 IE浏览器升级版本问题 人不讲小人过下一句怎么接? 您没有安装Flash或版本过低,可能会导致部 分功能展示异常,请升级您的Flash 为什么丑人多作怪? 今天早上,男朋友对自己说了一句丑人多作怪,挺伤心的,他是什么意思 为什么oppo锁屏杂志开启不换了,就是一直是一个壁纸。 opporeno3手机锁屏杂志为什么不自动换? oppor9splus手机锁屏杂志开了,但不自动更换,没设置新壁纸,重启也没用,为什么? OPPO A9如何设置锁屏杂志? oppor11壁纸为什么不自动变换了 问一下为什么OPPO锁屏杂志设置了显示的却不是自己设置的图片啊? Win10系统多了fontdrvhost.exe进程怎么办 opporeno3pro移动屏保为什么不能自动换? oppo怎幺不让锁屏跳 oppo怎幺不让锁屏跳 WUDFHost.EXE程序能否关闭?开机占了老大CPU,忘高人指点 怎么关闭wudfhost.exe?如果你半桶水想去 干挂琉璃瓦的做法6琉璃瓦怎么固定 DLLHOST.ExE进程如何禁止掉? 钢结构干挂琉璃瓦施工有缝隙吗 江苏富陶科陶瓷有限公司怎么样? 怎么完全关闭dillhost.exe这个程序 内存占用太多了,电脑卡的要命 。求助 别发网上那 干挂琉璃瓦有知道的吗? 琉璃瓦屋顶干挂好还是用湿粘好 searchfilterhost.exe的关闭方法