通过父节点ID查询所有子节点ID,报错:data too long for column
时间:2011-06-07
来源:互联网
建表:
create table t_dept
(
n_dept_id int(11) not null auto_increment,
n_keyin_id int(11) not null,
n_dept_supervisor_id int(11) not null,
n_dept_contact_id int(11),
n_dept_father_id int(11),
vc_dept_name varchar(4000) not null,
vc_dept_tel varchar(4000),
vc_note varchar(8000),
dt_del_time datetime,
primary key (n_dept_id)
);
其中:n_dept_id自己的ID, n_dept_father_id父ID
函数:
CREATE DEFINER=`root`@`localhost` FUNCTION `getChildLst`(rootId INT) RETURNS text CHARSET gbk
BEGIN
DECLARE sTemp text;
DECLARE sTempChd text;
SET sTemp = '$';
SET sTempChd =cast(rootId as char);
WHILE sTempChd is not null DO
SET sTemp = concat(sTemp,',',sTempChd);
SELECT group_concat(n_dept_id) INTO sTempChd FROM t_dept where FIND_IN_SET(n_dept_father_id,sTempChd)>0;
END WHILE;
RETURN sTemp;
END;
测试: select * from t_dept
where FIND_IN_SET(n_dept_id, getChildLst(4));
显示了id为4的那一行。但是如果把4换成1.就会报错:data too long for column for 'sTemple'
参数4和1唯一的不同是,没有父ID为4的行。但是有父ID为1的行。
求解。
create table t_dept
(
n_dept_id int(11) not null auto_increment,
n_keyin_id int(11) not null,
n_dept_supervisor_id int(11) not null,
n_dept_contact_id int(11),
n_dept_father_id int(11),
vc_dept_name varchar(4000) not null,
vc_dept_tel varchar(4000),
vc_note varchar(8000),
dt_del_time datetime,
primary key (n_dept_id)
);
其中:n_dept_id自己的ID, n_dept_father_id父ID
函数:
CREATE DEFINER=`root`@`localhost` FUNCTION `getChildLst`(rootId INT) RETURNS text CHARSET gbk
BEGIN
DECLARE sTemp text;
DECLARE sTempChd text;
SET sTemp = '$';
SET sTempChd =cast(rootId as char);
WHILE sTempChd is not null DO
SET sTemp = concat(sTemp,',',sTempChd);
SELECT group_concat(n_dept_id) INTO sTempChd FROM t_dept where FIND_IN_SET(n_dept_father_id,sTempChd)>0;
END WHILE;
RETURN sTemp;
END;
测试: select * from t_dept
where FIND_IN_SET(n_dept_id, getChildLst(4));
显示了id为4的那一行。但是如果把4换成1.就会报错:data too long for column for 'sTemple'
参数4和1唯一的不同是,没有父ID为4的行。但是有父ID为1的行。
求解。
作者: chongchongyehenmao 发布时间: 2011-06-07
把'sTemple'插到表里面调试看下
作者: rucypli 发布时间: 2011-06-07
你测试的表中数据是什么样? 是不是记录太多了?
作者: ACMAIN_CHM 发布时间: 2011-06-07
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28