网站建设容易吗,seo站内优化教程,建站房的公司,wordpress文章密码查看众所周知#xff0c;如果我们的用SQL查询语句时#xff0c;如果用where in带的参数超过1000条的话#xff0c;oracle是会报错的。 因为项目中遇到这样的问题#xff0c;所以找到了接下来我要说的这个办法。 因为用的地方很多#xff0c;所以我把这个封装成了一个方法。 //… 众所周知如果我们的用SQL查询语句时如果用where in带的参数超过1000条的话oracle是会报错的。 因为项目中遇到这样的问题所以找到了接下来我要说的这个办法。 因为用的地方很多所以我把这个封装成了一个方法。 /// summary/// 获取查询条件超过1000个列表数据的SQL/// columnName In :list/// /summary/// param namelist参数列表/param/// param namecolumnName字段名称/param/// param namearguments带出的参数/param/// returnssql/returnsprivate string GetWhereIn(Liststring list, string columnName, out Dictionarystring, object arguments){arguments new Dictionarystring, object();if (list null || list.Count 0) return string.Empty;var pageSizes 1000;// 计算参数分页页数var totalPages list.Count % pageSizes 0 ?list.Count % pageSizes :list.Count % pageSizes 1;var sqlResultContainer new Liststring();for (var pageIndex 0; pageIndex totalPages; pageIndex){var skipCount pageIndex * pageSizes;var listGroup list.Skip(skipCount).Take(totalPages).ToList();if (listGroup.Count 0) continue;sqlResultContainer.Add(${columnName} IN :p{pageIndex});arguments.Add($p{pageIndex}, listGroup);}var sqlResult ( string.Join( OR , sqlResultContainer) );return sqlResult;}只想SQL我用的是Dapper. 所以调用这个方法后返回的是个sql语句。用于拼接在where后面或者and后面等。 arguments是传值出来的需要带如到dapper的传参中。 注意的是 argumens的类型是Dictionarystring,object 第二个一定是要object不然的话dapper是会报错的。 转载于:https://www.cnblogs.com/saving/p/9967955.html