mysql 函数 GROUP_CONCAT 单元格中最长字符串和excel导出问题
2016-04-14 15:00
886 查看
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的列里面
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行。
相关文章推荐
- MyBatis+MySQL 返回插入的主键ID
- mac下的一些mysql操作
- 通过MTK迁移Mysql到EDB实战指南
- mysql 存储过程
- mysql中文乱码问题
- 【8】mysql数据控制语言DCL(Data Control Language)
- mysql数据过滤
- mysql存储过程
- mysql数据库的导入和导出
- Mysql修改时间的年月日,时分秒不变的做法(转载)
- mysql索引总结----mysql 索引类型以及创建
- mysql数据库复制
- Mysql取每小时的一条记录
- MySQL入门教程(七)之视图
- Mysql 基本使用
- Ubuntu 安装 Mysql
- MySQL数据库时区配置
- MySQL的联合索引和覆盖索引
- 【MySQL】MySQL 5.7 sys Schema
- MySQL外键约束