可以使用 MySQL 的 GROUP BY 和 GROUP_CONCAT 函数来实现。

假设需要对表中的 'id' 列进行分组,每组最多包含 170 个 'id',最多分成 150 组,可以使用如下语句:

SELECT GROUP_CONCAT(id) as ids 
FROM 表名 
GROUP BY FLOOR((ROW_NUMBER() OVER () - 1) / 170) 
HAVING FLOOR((ROW_NUMBER() OVER () - 1) / 170) < 150;

其中,ROW_NUMBER() OVER () 是 MySQL 8.0 版本以上的新特性,用于生成行号。FLOOR((ROW_NUMBER() OVER () - 1) / 170) 用于将行号分组,每组包含 170 行。

GROUP_CONCAT 函数用于将每组的 'id' 拼接成字符串,别名为 'ids'。

HAVING 语句用于限制分组最多 150 组。

注意,在 MySQL 8.0 以下版本中,可以通过变量模拟 ROW_NUMBER() OVER () 函数的效果,具体方法可以参考以下文章:

https://www.mysqltutorial.org/mysql-row_number/

MySQL 分组拼接 ID:每组 170 个,最多 150 组

原文地址: https://www.cveoy.top/t/topic/ozBH 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录