今天在調試代理表的時候,開始查詢一直都查詢不到新添加進來的代理數據,一會兒鎖定函數裏面的某些變量長度限制有問題,因而修改長度從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 後臺