SQLBuilder.Core icon indicating copy to clipboard operation
SQLBuilder.Core copied to clipboard

框架关于SQL中的Where Id In(1,2,3,4,.....10) OR Id In(11,12,13,14,.....20) 这种写法是否支持,我用的Linq的方式,并非SQL。目前Where In中的长度超过了2100了,作者是否可以支持多个In的操作呢?

Open wangfei9999 opened this issue 2 years ago • 1 comments

image

// 例如:我有一个长度为5000的数组 var Ids = new string[5000]; // 按照2100的长度拆分为多个数组后 var splitIds = List<string []>(); // 然后循环splitIds ,并且Linq表达式 Expression<Func<Student,bool>> where = s=> 1==1; foreach(var ids in splitIds) { where = where.Or(s=>ids.Contains(s.Id); } _repo.FindListAsync<StoreInDtlSnEntity>(pageStoreDtlIdWhereExp));

// 因为数据库存在Where In 最大长度2100的限制,我希望的SQL输出为 SELECT * FROM Student WHERE Id in(1,2,3...,10) or Id in(11,12,....,5000)

wangfei9999 avatar Sep 28 '23 09:09 wangfei9999

目前暂时没打算支持,遇到这种情况,你这边可以先进行分页,然后再处理;

zqlovejyc avatar Oct 16 '23 02:10 zqlovejyc