以下的文章主要介绍的是如何正确对mysql表字段进行整理,本文是以一问一答的方式来说明其实际操作的具体步骤,这样就会让你更深入的了解,以下就是文章的具体内容阐述,希望你浏览之后会有所收获。
表dz_tupian
当前表的数据
mysql表字段 phid adress
- 001 whai
- 002 fdsadf
- 003 fdsfsdaf
- 002 dfewads
- 003 fwerasere
- 001 hfghgrtt
- ... ...
想要实现的效果:
字段 phid adress
- 001 whai hfghgrtt
- 002 fdsadf dfewads
- 003 fdsfsdaf fwerasere
phid里有很多相同的数字 先找出重复的 (可能有一个 或者60个)
然后将重复的行 整合为一行---- phid相同的行 第二个mysql表字段adress依次
添加到新整合的一行的adress字段里
这是我的思路 不知如何写代码
问题补充:第二个方法挺好 在mysql数据库里 查询 然后把查询的结果导出 就可以得到我要的效果
但有个问题 表dz_tupian 字段adress 类型是mediumtext mediumtext最大长度是16777215个字符。
为何导出的查询结果adress最后不完整 有残缺 看得出来相同phid的adress值没有完全添加到adress字段里
这是为什么
问题好像不是adress字段 字符的数量限制 可是查询的结果确实是如果相同phid的数量多的话 对应的adress也就多 就出现最后不完整 少的 就可以完整的显示出来
刚查过 adress字段 最多的是533个字符 可是mysql表字段adress 类型是mediumtext mediumtext最大长度是16777215个字符 这就是不完整的原因 为什么????
级最佳答案补充回答:
group_concat函数有大小限制,缺省是1024,你可以根据自己的要求修改这个大小,有两种方法
1.在mysql配置文件中加上
group_concat_max_len = 102400 #你要的最大长度
2.可以简单一点,执行语句:
- mysql> SET GLOBAL group_concat_max_len=102400;
- Query OK, 0 rows affected (0.01 sec)
具体的可以看参考资料的连接
mysql可以使用group_concat函数了,以下语句在mysql5中测试通过
- select phid,group_concat(adress order by adress separator " ") as adress
- from dz_tupian
- group by phid
以上的相关内容就是对整合mysql表字段的介绍,望你能有所收获。
【编辑推荐】