-- 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中返回上级_MySql 获取当前节点及递归所有上级节点相关推荐

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

    -- MySql 获取当前节点及递归所有上级节点 -- 参数说明:resultField:查询返回字段,idd 要查询的资源ID值,idFieldName ID字段名,parentIdFieldNam ...

  2. mysql groupby 取值_mysql获取groupby总记录行数的方法

    本文实例讲述了mysql获取group by总记录行数的方法,分享给大家供大家参考.具体方法分析如下: 一般来说,mysql获取group by内部可以获取到某字段的记录分组统计总数,而无法统计出分组 ...

  3. mysql 获取结果_【原创】7. MYSQL++中的查询结果获取(各种Result类型)

    在本节中,我将首先介绍MYSQL++中的查询的几个简单例子用法,然后看一下mysqlpp::Query中的几个与查询相关的方法原型(重点关注返回值),最后对几个关键类型进行解释. 1. MYSQL++ ...

  4. tsql是mysql中的吗_Mysql中的sql是如何执行的

    MySQL中的SQL是如何执行的 MySQL是典型的C/S架构,也就是Client/Server架构,服务器端程序使用的mysqld.整体的MySQL流程如下图所示: MySQL是有三层组成: 连接层 ...

  5. mysql中如何取月份_mysql中如何取月份?

    在mysql中可以使用MONTH()函数来获取月份,它会从指定日期值中获取月份值.MONTH()函数需要接受date参数,语法格式为"MONTH(date);",返回指定date对 ...

  6. mysql 函数返回表格_mysql 数据分析如何实现日报、周报、月报和年报?

    推荐阅读: MySQL复习:20道常见面试题(含答案)+21条MySQL性能调优经验 秋招Java面试大纲:Java+并发+spring+数据库+Redis+JVM+Netty等 以天为统计周期,是常 ...

  7. mysql中连接运算符_MySQL的运算符

    1.算术运算 运算符 作用 + 加法 - 减法 * 乘法 / (div) 除法 (整除) % (mod) 求余 运算代码 结果 运算代码 结果 select -4/-3; //1.3333 selec ...

  8. mysql中基字符集_Mysql中的字符集

    1.字符集基础 在计算机的眼中只有0和1,但是在人类世界中却有上百种语言,每种语言又有成千上万的文字,那么如何在计算中表示人类世界中的这些文字呢? 在上个世纪60年代的时候,美国首先定义了一套规则,在 ...

  9. mysql sum返回类型_MySQL的sum函数返回的类型

    今天项目切换数据库时,出错 访问数据库的代码大概是这样: String sql = "select sum(number) as sumNumberOfOneDay from tableNa ...

最新文章

  1. 一本Python数据分析入门宝藏书,快藏不住了!
  2. (003) java后台开发之设置Eclipse代码提示和快捷键
  3. 编码区和非编码区的关系
  4. Android中asset和raw的区别
  5. Cracer渗透视频课程学习笔记——信息搜集
  6. GBDT(Gradient Boosting Decision Tree
  7. git 改了一段代码不想要了_Git - 如何将master/其他分支上修改代码不提交直接移到新建分支...
  8. java csrf_java使用jsp servlet来防止csrf 攻击的实现方法
  9. Boost::context模块callcc的stack测试程序
  10. 破解百度网盘的Pandownload开发者被捕,让人唏嘘
  11. IBASE save - my toolset investigation
  12. MySQL 覆盖索引、最左前缀原则、索引下推
  13. 漫画 | 让设计师崩溃的十个瞬间
  14. matlab 高级函数 —— circshift、squeeze
  15. 网络攻击导致企业遭受损200万美元
  16. 当你灵感枯竭的时候,如何深挖客户需求?采用曼陀罗思考法(5W1H模式),相信你会找到出路
  17. WebRoot和Web-Info区别
  18. Java项目:医院挂号预约管理系统(java+SSM+HTML+JavaScript+jsp+mysql)
  19. 在线正则表达式大全测试
  20. 二.微信小程序代码的构成

热门文章

  1. 基于Springboot外卖系统05:用户非登陆状态的页面拦截器实现
  2. 外设citrix xendesktop 手写笔
  3. 双评价技术指南2020_双评价技术指南试评价培训交流会成功召开
  4. 拳王虚拟项目公社:聊聊虚拟资源项目虚拟资源倒卖生意怎么赚钱?
  5. CryENGINE3系列总结教程之UI/HUD(一)制作生命条弹药条Flash部分
  6. linux 查看进程 发包,Linux网络发包流程
  7. 各大网商店铺历史价格分析原理
  8. 【项目管理】采购、外包、合同
  9. 小米2s 用线刷,刷回MIUI V5了
  10. linux lotus notes实例,在Ubuntu 6.10 系统中安装Lotus Notes 7详细图解