今天在调试代理表的时候,开始查询一直都查询不到新添加进来的代理数据,一会儿锁定函数里面的某些变量长度限制有问题,因而修改长度从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 后台