MySql 获取当前节点及递归所有上级节点

摘要:
--MySql获取当前节点及递归所有上级节点--参数说明:resultField:查询返回字段,idd要查询的资源ID值,idFieldNameID字段名,parentIdFieldName上级ID字段名,tableName表名,isContainMySelf是否包含自己DROPprocedureIFEXISTSpro_getParentList;createprocedurepro_getPar
-- MySql 获取当前节点及递归所有上级节点 
-- 参数说明:resultField:查询返回字段,idd 要查询的资源ID值,idFieldName ID字段名,parentIdFieldName 上级ID字段名,tableName 表名,isContainMySelf 是否包含自己
DROP procedure IF EXISTS pro_getParentList;
create procedure pro_getParentList(in resultField varchar(4000),in myid varchar(100),in idFieldName varchar(100),in parentIdFieldName varchar(100),in tableName varchar(100),isContainMySelf int)
begin
	drop table if exists tmpParent;
	CREATE    TABLE tmpParent(temId varchar(100)) ;
	set @tempParentId=myid;
  set @myDoflag=1;
WHILE @myDoflag>0  do 
    set @ssss = CONCAT(' select ', parentIdFieldName, ', count(*) INTO  @tempParentId,@myDoflag from ',tableName ,' where ',idFieldName,'=','''',@tempParentId,'''');
		prepare strsql from @ssss;
		execute strsql;
    deallocate prepare strsql;     
    if(@myDoflag>0) THEN
	  set @insertSql = CONCAT('INSERT into tmpParent(temId) values (',"'",@tempParentId,"'",')');
	  prepare preSql1 from @insertSql;
	  execute preSql1;
    deallocate prepare preSql1; 
    end if;
end WHILE;
		 IF (isContainMySelf=1) THEN
			INSERT into tmpParent(temId) values (myid); 
		 END IF; 
			SET @fieldSql=concat(' SELECT ',resultField);
			set @strsql = CONCAT(@fieldSql,' from ', tableName,' s ',' inner join  tmpParent t on t.temId=s.',idFieldName,'  order by s.',idFieldName,'  asc');
			prepare preSql from @strsql;
			execute preSql;
end

免责声明:文章转载自《MySql 获取当前节点及递归所有上级节点》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Cocos2d-x之物理世界(创建静态的物体)pycharm上传文件目录到Linux下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysql-connector-java与Mysql、Java的对应版本

转载自 https://blog.csdn.net/lingeio/article/details/93487770 mysql-connector-java与Mysql对应版本: MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7, and 5.6...

MySQL 8 主从搭建

主:192.168.10.2 从:192.168.10.3 1、修改配置文件 MySQL 搭建主从需要配置 my.cnf ,在主库 my.cnf 的 [mysqld] 段落下添加如下内容: [mysqld] # 设置server-id,唯一值,标识主机,必须与从库不一致 server-id=1 # 开启二进制日志,主库必须开启 log-bin=mysql...

mysql 链接超过ip限制时的报错

报错信息:Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [1129] Host '127.0.0.1' is blocked because of many connection errors; unblock with 'mysqladmin fl...

(整理)MySQL_REHL6.5 安装MySQL5.5

1 根据系统选择Mysql版本 https://dev.mysql.com/downloads/mysql/5.5.html?os=31&version=5.1 在命令行的方式下,REHL/Centos的yum在线安装需要账号,因此采用下载tar包的方式来安装。 2 删除原系统的mysql 输入Shell 命令,查看是系统否已安装mysql:r...

一个神奇SQL引发的故障【转】

前几天一个客户数据库主实例告警,诊断过程中发现是由一个慢SQL导致的数据库故障,而在排查逐步深入之后却发现这个现象的不可思议。 问题描述 2016年12日09日,大概9点26分左右,一个客户的生产库主实例发出告警,告警信息如下: MySQL实例超过五分钟没有更新。这个告警信息简单解释下就是持续五分钟无法获取该实例的信息。 同时开发人员还反映,从12月09日...

MySQL复制日常维护与管理

一、复制一些常见设置 1、mysql复制启动时参数: mysql启动时的参数包括:master_host,master_port,master_user,master_password,master_log_file,master_log_pos。这几个参数需要在从库上配置,用来记录需要复制的主数据库的地址、端口、和用户等。mysq复制还包括以下几个常用的...