mysql 函数 GROUP_CONCAT 单元格中最长字符串和excel导出问题

时间:2023-03-09 15:24:17
mysql  函数 GROUP_CONCAT 单元格中最长字符串和excel导出问题
  • GROUP_CONCAT 使用方式GROUP_CONCAT ([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔符'])
    • SELECT column1, GROUP_CONCAT(IFNULL(column2,0) ,  ','  ,IFNULL(column3,0),  ','  ,IFNULL(column4,0)   ORDER BY LENGTH(column5),column4)  column_name  from table_name
    • 多列链接为一行,列和列之间用逗号分隔。每一行再链接为一个完整的结果行cluum_name,每一行默认逗号分隔。
    • 列的内容不能为NULL,需要IFNULL转换一下,否则链接的结果为NULL
    • column_name默认允许的长度为1024
  • 修改group_concat_max_len的长度,因为大于1024,GROUP_CONCAT 查出来的结果就会被截断。
    • SET GLOBAL group_concat_max_len=102400;//全局设置,重启sql起作用
    • SET SESSION group_concat_max_len=102400;//回话设置,当时就起作用
    • 我采用第二种方式SET SESSION group_concat_max_len=102400。
  • 查出来结果正常,但是导出excel(2003)后GROUP_CONCAT查出的结果任然被截断。
    •  无奈之下只能在msql查出的结果表里面复制列,然后粘贴到excel的列里面
    • EXCEL2003最大列数是256列(IV列)最大行数为65536行,EXCEL2007以上的版本最大列数是16384列最大行数为1048576行。