关于mysql存储过程递归查询 报错1406 - Data too long for column '' at row

最近要做一个查询 通过递归实现查询到某一个id下面的所有子数据

表结构如下

图片说明图片说明

存储过程代码如下

BEGIN
DECLARE sTemp VARCHAR(4000);
DECLARE sTempChd VARCHAR(4000);

SET sTemp='$';
SET sTempChd = CAST(areaId AS CHAR);

WHILE sTempChd IS NOT NULL DO
SET sTemp= CONCAT(sTemp,',',sTempChd);
SELECT GROUP_CONCAT(CITYID) INTO sTempChd FROM SYSTEM_AREA_CITY WHERE FIND_IN_SET(PARENTID,sTempChd)>0;
END WHILE;
RETURN sTemp;
END

下面是调用存储过程后报错的提示

Procedure execution failed
1406 - Data too long for column 'sTemp' at row 7

你这个需要传参,为什么不用函数?

在mysql的命令行界面执行

SET @@global.sql_mode='';

DECLARE sTemp text;
DECLARE sTempChd text;