自定义函数修改无效

tjzero_sapce 2014-08-29 04:48:20
在mysql中做了这样一个函数,之前设置的输出函数长度为 varchar(1000) ,运行后发现输出长度超过1000,数据不全,所以改成varchar(5000),但是再运行,运行结果还是跟改之前一样的,这是怎么回事儿啊...
BEGIN 
DECLARE sTemp VARCHAR(5000);
SET sTemp = '$';
WHILE rootId is not null DO
SET sTemp = concat(sTemp,',',rootId);
SELECT group_concat(tfid) INTO rootId FROM tbl_i_dzz where FIND_IN_SET(pid,rootId)>0;
END WHILE;
RETURN sTemp;
END
...全文
167 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjzero_sapce 2014-09-04
  • 打赏
  • 举报
回复
无人能回答么
tjzero_sapce 2014-09-01
  • 打赏
  • 举报
回复
其实跟这个还真没有关系 ,是我没有修改
CREATE FUNCTION dzz_parent(rootId VARCHAR(45000))
	RETURNS varchar(45000)
因为这段代码在navcat中默认没显示 就把他给忘了 改成45000后就把所需要的值查询出来了,不过这里有个疑问,rootId VARCHAR(45000)这个入参 ,我最大可能就是32位,但是我写成32 和 写成45000 相比,返回的字符长度就是不一样 这是为什么呢?
tjzero_sapce 2014-09-01
  • 打赏
  • 举报
回复
引用 3 楼 ACMAIN_CHM 的回复:
检查 group_concat_max_len 变量设置。
其实跟这个还真没有关系 ,是我没有修改
CREATE FUNCTION dzz_parent(rootId VARCHAR(45000))
	RETURNS varchar(45000)
因为这段代码在navcat中默认没显示 就把他给忘了 改成45000后就把所需要的值查询出来了,不过这里有个疑问,rootId VARCHAR(45000)这个入参 ,我最大可能就是32位,但是我写成32 和 写成45000 相比,返回的字符长度就是不一样 这是为什么呢?
ACMAIN_CHM 2014-08-29
  • 打赏
  • 举报
回复
检查 group_concat_max_len 变量设置。
  • 打赏
  • 举报
回复
楼上说的很对!
WWWWA 2014-08-29
  • 打赏
  • 举报
回复
默认1024,超过就会截断 SET GLOBAL group_concat_max_len=102400;

56,678

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧