mysql的group_concat函数长度限制

今天在调试代理表的时候,开始查询一直都查询不到新添加进来的代理数据,一会儿锁定函数里面的某些变量长度限制有问题,因而修改长度从4000变为8000,怎么看查询的结果回来都只是1024的长度,感受有问题,继续找度娘,后台找到了解决方案。本地亲测有效,问题已经解决。mysql

1. GROUP_CONCAT有个最大长度的限制,超过最大长度就会被截断掉,你能够经过下面的语句得到:sql

  SELECT @@global.group_concat_max_len;函数

  show variables like "group_concat_max_len";.net

2.在MySQL配置文件中my.conf或my.ini中添加:代理

  #[mysqld]
  group_concat_max_len=102400调试

3.重启MySQL服务blog

函数:
DELIMITER $$
CREATE FUNCTION `getChildList`(`rootId` VARCHAR(32)) RETURNS varchar(4000) CHARSET utf8
BEGIN
    DECLARE sTemp VARCHAR(4000);
    DECLARE sTempChd VARCHAR(4000);
    DECLARE count INT DEFAULT 0;get

    SET sTemp = '';-- 返回值
    SET sTempChd =cast(rootId as CHAR); -- 父id
        
        -- 判断父id是否存在
      SET count=(SELECT count(1) from sys_dept WHERE id=rootId);
        IF count>0 THEN
            -- 遍历拼接全部子节点id
            WHILE sTempChd is not null DO
                SET sTemp = concat(sTemp,',',sTempChd);
                SELECT group_concat(id) INTO sTempChd FROM sys_dept where FIND_IN_SET(parent_Id,sTempChd)>0;
            END WHILE;
        -- 剔除拼接后多余的第一个逗号
        SET sTemp = (SELECT TRIM(LEADING ',' FROM sTemp));
        END IF;
    RETURN sTemp;
END $$
DELIMITER ;
 ast

友情连接:https://blog.csdn.net/qw222pzx/article/details/80867797 后台

相关文章
相关标签/搜索