sql select * from table where id in('aaa','bbb','ccc')原来IN中的数据量不能超过1000条,暂时处理方法是:如果大于1000的话就把它拆分成两个或多个in就OK了,所以上面的id in ( .......)就变成了 id in(str1) and id in(str2) and id in (str3).
String value ="'aaaaaaaaaa','bbbbbbbbb','cccccccc','dddddd','eeeeeeee'";
我要把这个String 转成          in ( 1000 个) and in (1000 个) and in ('''')
如何写。。     value.split(",");   %1000 

解决方案 »

  1.   

    首先 id in(str1) and id in(str2) and id in (str3). 应该是or才对吧String[] arr = value.split(",");
            StringBuilder sb = new StringBuilder();        for (int i = 1; i <= arr.length; i++) {
                if (i == 1) {
                    sb.append("in(");
                    sb.append(arr[i - 1]);
                    sb.append(",");
                } else if (i == arr.length) {
                    sb.append(arr[i - 1]);
                    sb.append(")");
                } else {
                    if (i % 1000 == 0) {
                        sb.append(arr[i - 1]);
                        sb.append(") or in(");
                    } else {
                        sb.append(arr[i - 1]);
                        sb.append(",");
                    }
                }
            }
            System.out.println(sb.toString());
      

  2.   

    String value ="'aaaaaaaaaa','bbbbbbbbb','cccccccc','dddddd','eeeeeeee'"; LZ我给你一个建立,直接把="'aaaaaaaaaa','bbbbbbbbb','cccccccc','dddddd','eeeeeeee'";  左右两端的""号去掉就行。
    去掉后变成'aaaaaaaaaa','bbbbbbbbb','cccccccc','dddddd','eeeeeeee',然后把它放到in()中。