当前位置:首页 » 操作系统 » 数据库connectby

数据库connectby

发布时间: 2025-05-24 03:46:15

1. 如何优化start with connect by prior

用 with .. as

实现递归。

供参考:

Oracle自己提供的是 connect by ... start with,而别的数据库只有使用With来实现

create tabletest1(id number, name varchar2(20), pid number);

insert intotest1 values(1,'电器',null);
insert intotest1 values(2,'家电',1);
insert intotest1 values(3,'冰箱',2);
insert intotest1 values(4,'洗衣机',2);
insert intotest1 values(5,'电脑',1);
insert intotest1 values(6,'笔记本',5);
insert intotest1 values(7,'平板',5);
insert intotest1 values(8,'组装机',7);
insert intotest1 values(9,'品牌机',7);

withsubqry(id,name,pid) as(
select id,name,pid fromtest1 where id= 5
union all
selecttest1.id,test1.name,test1.pid fromtest1,subqry
wheretest1.pid = subqry.id
)
select* fromsubqry;

drop tabletest1;

2. 求助,oracle的connect by功能转换到mysql如何

在Oracle中sql代码如下编写

select o.orgid from t_organization o
connect by prior o.orgid = o.orgparentid
start with o.orgid = #{params.swjgDm}

那么在MySQL数据库中需要改为如下方式

select o.orgid from t_organization o where
(o.ORGPARENTIDS LIKE concat('%/',#{params.swjgDm},'/%')
or o.ORGID =#{params.swjgDm}) and o.AVAILABLE ='1'

3. oracle SQL查询时提示 用户数据中的connect by 循环 报错是什么原因

一般是数据错误导致了死循环。
如数据为这样:
ID 父ID 值
1 2 10
2 1 20

如图,ID为1的父ID为2,而同时ID为2的父ID是1,这样的话,就会互相认对方的ID为父ID,就会造成一个死循环,这种错误,一般不用修改语句,需要正确检查数据的正确性。

热点内容
gpu服务器怎么打开 发布:2025-05-24 08:57:50 浏览:521
安卓三防手机哪个好 发布:2025-05-24 08:20:50 浏览:349
怎么把文件夹加密win7 发布:2025-05-24 08:18:27 浏览:252
打折扣的算法 发布:2025-05-24 08:00:28 浏览:123
androiduri 发布:2025-05-24 07:58:23 浏览:554
python从键盘输入 发布:2025-05-24 07:55:27 浏览:158
游戏安装完成之后缓存要删吗 发布:2025-05-24 07:43:52 浏览:336
iis服务器怎么改时区 发布:2025-05-24 07:37:46 浏览:749
java命令行执行 发布:2025-05-24 07:37:37 浏览:363
方舟手游创服务器要什么卡买 发布:2025-05-24 07:27:12 浏览:722