CatFood3
CatFood3
采纳率0%
2019-03-21 11:35 阅读 2.6k

关于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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

3条回答 默认 最新

  • qq_41251963 乐亦亦乐 2019-03-21 11:39

    在mysql的命令行界面执行

    SET @@global.sql_mode='';
    
    点赞 评论 复制链接分享
  • qq_28199467 夜空中最亮的那颗星 2019-03-21 16:51

    DECLARE sTemp text;
    DECLARE sTempChd text;

    点赞 评论 复制链接分享
  • weixin_42080504 have_power 2019-03-22 09:12

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

    点赞 评论 复制链接分享

相关推荐