美文网首页
mysql如何获取递归查询某一列的结果?

mysql如何获取递归查询某一列的结果?

作者: 秋林格瓦斯 | 来源:发表于2019-05-14 16:07 被阅读0次

声明一个存储过程,作用是递归查询到最顶层。
例如:

code name parent_code
100 nb 0
200 zjc 100

对于这样的数据,那么就会输出 <zjc<nb; 代码中的判断条件是parentCode = 0终止。
mysql代码如下:

DELIMITER //
DROP FUNCTION IF EXISTS getParentRegion;
create FUNCTION getParentRegion(org VARCHAR(32))
returns varchar(4000)
BEGIN

DECLARE oTempParent VARCHAR(4000);
DECLARE oTempName VARCHAR(4000);
DECLARE oName VARCHAR(4000);

SET oTempParent = org;
set oTempName = '';
SET oName = '';

WHILE oTempParent !='0'
DO

SELECT
   parent_code,name
   INTO oTempParent,
   oTempName
FROM
   t_sys_region
WHERE
   CODE = oTempParent ;
SET oName = CONCAT(oName,'<',oTempName);
END WHILE;
RETURN oName;

END //
DELIMITER;

select getParentRegion('200');

使用下面代码则输出zjc<nb

select SUBSTR(getParentRegion(ORG_REGION),2)

存在优化空间,这里只是简单做个工作记录。

相关文章

网友评论

      本文标题:mysql如何获取递归查询某一列的结果?

      本文链接:https://www.haomeiwen.com/subject/hgzsaqtx.html