首页 > 数据库 > MySQL > 正文

mysql 函数调用

2024-07-24 12:59:42
字体:
来源:转载
供稿:网友

本文讲述MySQL数据库的函数调用

选择数据库,创建一个表

CREATE TABLE `address` (`id` int(11) NOT NULL AUTO_INCREMENT,`code_value` varchar(32) DEFAULT NULL COMMENT '区域编码',`name` varchar(128) DEFAULT NULL COMMENT '区域名称',`remark` varchar(128) DEFAULT NULL COMMENT '说明',`pid` varchar(32) DEFAULT NULL COMMENT 'pid是code_value',PRIMARY KEY (`id`),KEY `ix_name` (`name`,`code_value`,`pid`)) ENGINE=InnoDB AUTO_INCREMENT=1033 DEFAULT CHARSET=utf8 COMMENT='行政区域表';

加入数据

这里写图片描述

创建一个函数

CREATE FUNCTION fn_getAddress_ChildList_test(rootId INT) RETURNS varchar(1000) CHARSET utf8 #rootId为你要查询的节点BEGIN#声明两个临时变量DECLARE temp VARCHAR(1000);DECLARE tempChd VARCHAR(1000);SET temp = '$';SET tempChd=CAST(rootId AS CHAR);#把rootId强制转换为字符WHILE tempChd is not null DOSET temp = CONCAT(temp,',',tempChd);#循环把所有节点连接成字符串。SELECT GROUP_CONCAT(code_value) INTO tempChd FROM address where FIND_IN_SET(pid,tempChd)>0;END WHILE;RETURN temp;END

调用函数

select fn_getAddress_ChildList_test('1')

返回结果

这里写图片描述


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表