翼度科技»论坛 编程开发 mysql 查看内容

mysql函数group_concat()返回结果不全问题

5

主题

5

帖子

15

积分

新手上路

Rank: 1

积分
15
一、场景

mysql使用
  1. group_concat()
复制代码
函数拼接返回字段时
发现返回结果数据不全

二、原因

  1. group_concat()
复制代码
函数返回结果的字符数大于mysql参数
  1. group_concat_max_len
复制代码
配置的最大字符长度

三、排查


查看group_concat_max_len配置
  1. SHOW VARIABLES LIKE 'group_concat_max_len'
复制代码
发现配置的字符长度只有4,确实太少


修改group_concat_max_len配置

a) 如果不方便重启mysql,可以通过以下命令进行配置修改
  1. SET GLOBAL group_concat_max_len = 102400
复制代码
修改后再次通过命令进行查看

注:

  • 如果不是通过
    1. 命令窗口
    复制代码
    进行操作
  • 而是通过
    1. Navicat Premium
    复制代码
    1. SQLyog
    复制代码
    等软件进行配置的修改
  • 需要打开一个新的查询页面
  • 执行
    1. SHOW VARIABLES LIKE 'group_concat_max_len'
    复制代码
    才能查询到最新的配置值
注:

  • 以上方式在mysql重启后会读取配置文件重新设置
  • 会导致设置失效
b) 修改mysql配置文件,永久生效
修改mysql配置文件:
  1. my.ini
复制代码
或者
  1. my.cnf
复制代码
注:

  • 到底是修改
    1. my.ini
    复制代码
    还是
    1. my.cnf
    复制代码
    具体看mysql用的是哪个
  • 根据实际情况选择
  • 一般两者只会存在一个

  1. [mysqld]
复制代码
下新增以下配置
  1. group_concat_max_len = 102400
复制代码

保存后重启mysql服务

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

来源:https://www.jb51.net/database/330780te6.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具