mysql如何实现递归等级查询

问题描述

mysql如何实现递归等级查询
在oracle中
select max(level) into max_level
from zj_template_option t
where t.enable = '1'
and t.template_id = '5'
--and level >='3'
and t.ispfx = '1'
start with t.pid = '0'
connect by prior t.id = t.pid
order by template_id;
把它改成mysql 如何实现及查询的结果为
id pid level
1 0 1
2 1 2
......

大神能给个这样的函数吗

解决方案

http://www.jb51.net/article/70414.htm

时间: 2024-08-24 18:43:34

mysql如何实现递归等级查询的相关文章

Mysql中的递归层次查询(父子查询)

最近遇到了一个问题,在mysql中如何完成节点下的所有节点或节点上的所有父节点的查询? 在Oracle中我们知道有一个Hierarchical Queries可以通过CONNECT BY来查询,但是,在MySQL中还没有对应的函数!!! 下面给出一个function来完成的方法 下面是sql脚本,想要运行的直接赋值粘贴进数据库即可. 创建表treenodes(可以根据需要进行更改) 12345678910 -- ---------------------------- -- Table stru

mysql-使用MYSQL实现oracle start with connect by递归树查询

问题描述 使用MYSQL实现oracle start with connect by递归树查询 代码如下,如何修改,感谢 DELETE FROM SFL_YWZYFL WHERE YWZYFL_ID IN (SELECT YWZYFL_ID FROM SFL_YWZYFL START WITH YWZYFL_ID IN(:ids) CONNECT BY PRIOR YWZYFL_ID=SFL_YWZYFL_ID) 不要沉啊! 解决方案 没卵用没卵用没卵用没卵用没卵用没卵用没卵用没卵用没卵用 解决

【JAVA秒会技术之搞定数据库递归树】Mysql快速实现递归树状查询

Mysql快速实现递归树状查询 [前言]今天一个好朋友问我的这个问题,以前也没有用到过,恰好有时间,就帮他研究了一下,纯属"现学现卖",正好在过程中,自己也能学习一下!个人感觉,其实一点也不难,不过是"闻道有先后",我们是"后"罢了.按照我的习惯,学完东西,总要总结一下嘛,也当做一个备忘录了.   具体需求就不描述了,简而言之,归结为两个: 1.如何通过子节点(cid)加载出所有的父节点(pid)? 2.如何通过父节点(pid)加载出所有的子节点

MySQL将表a中查询的数据插入到表b中

 MySQL将表a中查询的数据插入到表b中 如果表b存在 1 <code class="sql"><code class="sql"><code class="sql">insert into b select * from a;</code></code></code> 如果表b不存在 1 <code class="sql"><code

MySQL中优化sql语句查询常用的30种方法

本篇文章是对MySQL中优化sql语句查询常用的30种方法进行了详细的分析介绍,需要的朋友参考下   1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描. 3.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以

mysql-关于MySQL的完全外连接查询

问题描述 关于MySQL的完全外连接查询 问题看下图 为毛左连接和右连接查询都可以,全外连接就不行了啊?而且命令我也是直接翻阅上面的,只是把right改成了full 解决方案 mysql 不支持full joinhttp://blog.csdn.net/whitebill2004/article/details/7570541 解决方案二: (A left join B ) union (A right join B) 解决方案三: select [列名称] from 表名称 cross joi

oracle 两表递归关联查询

问题描述 oracle 两表递归关联查询 哪位大神帮忙指点下,现表A有字段a,b,c 表B有字段d 然后用表A和表B关联,先使用表B的字段d和表A的字段c关联如果关联不上,再用表B的字段d和表A的字段b关联,如果关联不上在用表B的d字段和表A的字段a进行关联,其中表A的字段c从属字段b,字段b从属字段a 解决方案 Oracle创建两表关联查询的视图查询oracle约束所关联的表查询oracle约束所关联的表 解决方案二: 有点像地市层级.但数据库不会这样设计把. 直接 用or将3种关联 联系起来

mysql 两张表关联查询问题

问题描述 mysql 两张表关联查询问题 现在有表A大概是百万级的数据,表B只有几千行,但是想在查询表A里剔除掉表B的数据,SELECT * FROM A WHERE NOT EXISTS (SELECT 1 FROM B WHERE B.id = A.id),这种写法效率很低,请问有没有其他的解决方法? 解决方案 这样写当然效率低,因为是笛卡尔积,要用join select a.*, b.* from a join b on a.id=b.id 解决方案二: 左外连left join 解决方案

mysql关于两张表查询的问题

问题描述 mysql关于两张表查询的问题 我现在有两张表 iislog ips_global 想根据iislog表查询出来的IP地址,得出对应的归属地,请问这语句该怎么写啊? 解决方案 如果没有关联,可以这么写 select g.ip_location, g.ip_isp from ips_global g left join iislog l on l.id=1 where g.ip_start<=l.client_ip and g.ip_end >= l.client_ip id是主键,可