SELECT T2.id, T2.name FROM ( SELECT @r AS _id, ,,@stop) as stop, (SELECT @r := p_id FROM goods_class WHERE id = _id) AS p_id, AS lvl FROM (, , ) vars, goods_class h ) T1 JOIN goods_class T2 ON T1._id = T2.id ORDER BY T1.lvl DESC…
获取所有子节点 DROP FUNCTION IF EXISTS `F_Co29_GetAllChildrenIdsOfTaskevent`;DELIMITER //CREATE FUNCTION `F_Co29_GetAllChildrenIdsOfTaskevent`( vId BIGINT)RETURNS VARCHAR(5000)BEGIN DECLARE sTemp VARCHAR(1000); DECLARE sTempChd VARCHAR(5000);…
BEGIN DECLARE sChildList VARCHAR(4000); DECLARE sChildTemp VARCHAR(4000); SET sChildTemp =cast(rootId as CHAR); WHILE sChildTemp is not null DO IF (sChildList is not null) THEN SET sChildList = concat(sChildList,',',sChildTemp); ELSE SET sChildList =…
前言:开发常用的关系型数据库MySQL,mssql,postgre,Oracle,简单的增删改查的SQL语句都与标准SQL兼容,这个不用讲,那么对于迭代查询(不严格的叫法:递归查询)每种数据库都不一样,对于标准SQL语句支持最好的是mssql和postgre,这个不需多讲,我们只讲讲单表情况下的postgre如何通过迭代查询获取有层级关系的数据. 一.表结构举例 MENU表 ID VARCHAR2(32) N sys_guid() 节点idFENXID VARCHAR2(32)…
前言: 我们在开发中,常常遇到单表的子-父id级联的表结构,在树形的深度不确定的情况下,一次查询出某个树形结构下的所有具有子-父级关系的数据变得十分困难. 这时,我们使用oracle提供的CONNECT BY PRIOR ... start WITH 实现树形结构具有子父级关系的表迭代查询和删除就会很方便. 1.树形结构表举例 (1)假设有一个MENU表,该表结构如下: ID VARCHAR2(32) N sys_guid() 节点id FENXID VARCHAR2(32)…
前言: 我们在开发中,常常遇到单表的子-父id级联的表结构,在树形的深度不确定的情况下,一次查询出某个树形结构下的所有具有子-父级关系的数据变得十分困难. 这时,我们使用oracle提供的CONNECT BY PRIOR ... start WITH 实现树形结构具有子父级关系的表递归查询和删除就会很方便. 1.树形结构表举例 (1)假设有一个MENU表,该表结构如下: ID VARCHAR2(32) N sys_guid() 节点id FENXID VARCHAR2(32)…