• MySQL层级数据查询


    MySQL层级数据查询

    address表结构如下:

    address表有如下数据:

    现在创建一个函数,获取地址全称:

    CREATE DEFINER=`root`@`localhost` FUNCTION `getFullName`(`id` varchar(1000)) RETURNS varchar(1000) CHARSET utf8mb4
        READS SQL DATA
    BEGIN
    
    	DECLARE fullName VARCHAR(1000);
    	DECLARE parentId VARCHAR(1000);
    	DECLARE parentName VARCHAR(1000);
    	
    	set fullName = (SELECT address.`name` FROM address WHERE address.id = id);
    	set parentId = (SELECT address.parentId FROM address WHERE address.id = id);
    	
    	WHILE parentId IS NOT NULL DO
    	    set parentName = (SELECT address.`name` FROM address WHERE address.id = parentId);
    			set fullName = CONCAT(parentName,"/",fullName);
    	    set parentId = (SELECT address.parentId FROM address WHERE address.id = parentId);
        END WHILE;
    	
    	RETURN fullName;
    END
    

    函数测试:

    SELECT
    	`address`.`id` AS `id`,
    	`address`.`name` AS `name`,
    	`getFullName` ( `address`.`id` ) AS `fullName` 
    FROM
    	`address`
    

  • 相关阅读:
    Session的配置
    插件编程小窥
    今日遇到了困难,顺便看了下SMO
    初识三层架构
    .NET文件类库
    JQuery学习笔记
    反射整理学习<二>
    通俗道破单例模式
    菜鸟写代码生成器最后一天完结篇
    卧谈会:委托与事件
  • 原文地址:https://www.cnblogs.com/XiaoZhengYu/p/12811142.html
Copyright © 2020-2023  润新知