Groovy用sql的in语法长度超过1000

Groovy用sql的in语法长度超过1000

sql语法限制in的最大长度只能为1000,怎么办呢

public static void main(String[] args) {

	def list = ['1', '2', '3', '123', '123', '234', '212', '334', '34412', '25324', '132423', '23425332', '235234', '235346', '999', '888', '777', '666', '324534']

	def len = list.size()

	def slen = Math.ceil(len / 3).toInteger()

	def a,sql = ""

	if (len > 3) {

		for (int i = 0; i < slen; i++) {

			if(len>3) {

				a = list[0..2]

				if (i == 0) {

					sql += " and id in (" + a.join(",")+")"

				} else {

					sql += " or id in (" + a.join(",")+")"

				}

			}else{

				a = list[0,-1]

				sql += " or id in (" + a.join(",")+")"

			}

			len = len-3

			list = list-a

		}

	} else {

		sql += " and id in " + a.join(",")

	}

	println sql

}

  • 发表于 2018-05-24 10:22
  • 阅读 ( 1015 )
  • 分类:grails

0 条评论

请先 登录 后评论
不写代码的码农
Jonny

程序猿

65 篇文章

作家榜 »

  1. 威猛的小站长 115 文章
  2. Jonny 65 文章
  3. 江南烟雨 33 文章
  4. - Nightmare 33 文章
  5. doublechina 31 文章
  6. HJ社区-肖峰 29 文章
  7. 伪摄影 20 文章
  8. Alan 14 文章