oracle中的层级查询用mysql替换
admin
2023-05-08 08:21:54
0

    Oracle的Start with...Connect By实现了树的递归查询,但是现在要求用MYSQL也实现相同的递归查询树的功能。这个功能是我从以前从未使用到过的,于是,我上网查询、找了一些资料开始做了起来。

    原始的oracle语句为

            select '|'||c.seq_cate||'|'

  from osr_category c

  start with c.seq_cate = #serviceCategory#

connect by prior c.seq_cate = c.parent_id)

    mysql没有相应的方法实现递归查询树的功能,所以只好根据网上所说的那样写个函数来实现:            

CREATE FUNCTION getChildList(rootId VARCHAR(1000))

RETURNS VARCHAR(1000)

BEGIN 

DECLARE pTemp VARCHAR(1000);

DECLARE cTemp VARCHAR(1000);

SET pTemp='$';

SET cTemp=rootId;

WHILE cTemp is not null DO

set pTemp=CONCAT(pTemp,',',cTemp);

SELECT GROUP_CONCAT(SEQ_CATE) INTO cTemp from osr_category

WHERE FIND_IN_SET(PARENT_ID,cTemp)>0;

END WHILE;

RETURN pTemp;

END

    随后其sql语句应该改为:

    select '|'||c.seq_cate||'|'

      from osr_category c

      where FIND_IN_SET(c.seq_cate, getChildList(#serviceCategory#))



相关内容

热门资讯

今年以来,越来越多美国交流团来... 4月,数十名美国犹他州青少年来豫参加2026年YES项目交流活动。图为美国青少年在郑州体验书法项目。...
“打工机器人”亮相郑州街头 机器人服务员“小盖”在郑州街边的一零售店工作。 王磊 摄机器人当服务员,在街头卖咖啡——这不是科幻电...
打响“河南服务”品牌丨盾构机有... 【开栏的话】为深入贯彻落实全省服务业大会精神,本报即日起开设“打响‘河南服务&rsquo...
一季度我国数字产业收入9.5万... 【大河财立方消息】5月14日,工信部发布的数据显示,一季度,我国数字产业实现良好开局,行业利润大幅改...
一体推进整治形式主义为基层减负... 形式主义实质是主观主义、功利主义,根源是政绩观错位、责任心缺失。当前,各地以深化“六个纠治”为抓手,...
5月上旬汽油柴油价格环比继续下... 【大河财立方消息】 5月14日,国家统计局发布2026年5月上旬流通领域重要生产资料市场价格变动情况...
河南信阳凌晨通报:常某朋(男,... 2026年5月13日21时43分许,我市浉河区发生一起道路交通事故。经查,常某朋(男,40岁)驾驶私...
马化腾回应腾讯AI是否落后;曝... “IT早报”时间,大家好,现在是 2026 年 5 月 14 日星期四,今天的重要科技资讯有: 1、...
马斯克宣布xAI将终止独立运营... 5月7日凌晨,马斯克在X上发布消息称旗下人工智能公司xAI将终止独立运营。马斯克表示,xAI将整体并...
韩国大学生的梦中情岗:海力士保... 文/凯斯 王动 编辑/章鱼在当下的韩国,最具性张力的东西是什么?不是水光肌,不是牛舔头,而是一件海力...