oracle中的层级查询用mysql替换

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

成都创新互联公司是一家朝气蓬勃的网站建设公司。公司专注于为企业提供信息化建设解决方案。从事网站开发,网站制作,网站设计,网站模板,微信公众号开发,软件开发,小程序制作,10年建站对成都酒楼设计等多个方面,拥有多年建站经验。

    原始的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#))


新闻标题:oracle中的层级查询用mysql替换
转载来于:https://www.cdcxhl.com/article48/jhscep.html

成都网站建设公司_创新互联,为您提供外贸网站建设服务器托管定制开发响应式网站网站策划网页设计公司

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都做网站