MySQL-递归查询方法解析

MySQL-递归查询方法解析,兄弟连教育(www.lampbrother.net)帮大家做了个简单的整理:有需要的朋友可以参考下哈。

首先

表结构和数据

CREATE TABLE `class` (  `classid` int(11) NOT NULL AUTO_INCREMENT,  `banji` int(11) DEFAULT NULL COMMENT ‘0‘,  `nianji` varchar(255) DEFAULT NULL,  PRIMARY KEY (`classid`)) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8;-- ------------------------------ Records of class-- ----------------------------INSERT INTO `class` VALUES (‘1‘, ‘0‘, ‘1‘);INSERT INTO `class` VALUES (‘2‘, ‘1‘, ‘2‘);INSERT INTO `class` VALUES (‘3‘, ‘1‘, ‘f‘);INSERT INTO `class` VALUES (‘4‘, ‘2‘, ‘d‘);INSERT INTO `class` VALUES (‘5‘, ‘3‘, ‘s‘);INSERT INTO `class` VALUES (‘6‘, ‘0‘, ‘a‘);INSERT INTO `class` VALUES (‘7‘, ‘6‘, ‘q‘);INSERT INTO `class` VALUES (‘8‘, ‘7‘, ‘h‘);INSERT INTO `class` VALUES (‘9‘, ‘5‘, ‘额‘);INSERT INTO `class` VALUES (‘10‘, ‘4‘, ‘121‘);

方法解析1

一级写一个查询结果联合起来

SELECT * from class WHERE classid =1UNIONSELECT * FROM class where banji in(SELECT classid from class  WHERE classid =1 )UNION SELECT * FROM class where banji in (SELECT classid FROM class where banji in(SELECT classid from class  WHERE classid =1))

方法解析2

使用函数方法

创建函数来获取个节点的值

CREATE FUNCTION `selectTree`(`id` int) RETURNS varchar(2000)BEGIN#Routine body goes here...DECLARE st VARCHAR(4000);DECLAREstcc VARCHAR(2000);#给st赋初值不能null,null会没有返回值set st=‘‘;set stcc=id;#判断stcc的是否为nullWHILE stcc is not NULL DO#拼接字符串赋值给stSET st=CONCAT(st,‘,‘,stcc);SELECT GROUP_CONCAT(classid) INTO stcc FROM class where FIND_IN_SET(banji,stcc)>0;END WHILE;RETURN st;END;

调用函数查出结果

SELECT * from  class where classid in (SELECT a.ban FROM class a,class b where a.banji=b.classid)  and banji=0

时间: 2024-07-30 20:10:36

MySQL-递归查询方法解析的相关文章

MySql优化方法---网上资料整理记录

1. 为查询缓存优化你的查询 大多数的MySQL服务器都开启了查询缓存.这是提高性最有效的方法之一,而且这是被MySQL的数据库引擎处理的.当有很多相同的查询被执行了多次的时候,这些查询结果会被放到一个缓存中,这样,后续的相同的查询就不用操作表而直接访问缓存结果了. 2. EXPLAIN 你的 SELECT 查询 使用 EXPLAIN 关键字可以让你知道MySQL是如何处理你的SQL语句的.这可以帮你分析你的查询语句或是表结构的性能瓶颈. EXPLAIN 的查询结果还会告诉你你的索引主键被如何利

MySQL 升级方法指南大全

MySQL 升级方法指南大全 http://blog.sina.com.cn/s/blog_5a8b8eb80100ld7a.html 通常,从一个发布版本升级到另一个版本时,我们建议按照顺序来升级版本.例如,想要升级 MySQL 3.23 时,先升级到 MySQL 4.0,而不是直接升级到 MySQL 4.1 或 MySQL 5.0. 如果都是比较新的版本的升级可以参考下面的文章, MySQL数据库的版本更新很快,新的特性也随之不断的更新,更主要的是解决了很多影响我们应用的BUG,为了让我们的

MySQL 升级方法指南大全

原文:MySQL 升级方法指南大全 通常,从一个发布版本升级到另一个版本时,我们建议按照顺序来升级版本.例如,想要升级 MySQL 3.23 时,先升级到 MySQL 4.0,而不是直接升级到 MySQL 4.1 或 MySQL 5.0. 如果都是比较新的版本的升级可以参考下面的文章, MySQL数据库的版本更新很快,新的特性也随之不断的更新,更主要的是解决了很多影响我们应用的BUG,为了让我们的MySQL变得更美好,我们有必要去给它升级,尽管你会说它现在已经跑得很好很稳定完全够用了.下面我们来

最全 MySQL 优化方法,从此优化不再难

说起MySQL的查询优化,相信大家收藏了一堆奇技淫巧:不能使用SELECT *.不使用NULL字段.合理创建索引.为字段选择合适的数据类型..... 你是否真的理解这些优化技巧?是否理解其背后的工作原理?在实际场景下性能真有提升吗?我想未必.因而理解这些优化建议背后的原理就尤为重要,希望本文能让你重新审视这些优化建议,并在实际业务场景下合理的运用. MySQL逻辑架构 如果能在头脑中构建一幅MySQL各组件之间如何协同工作的架构图,有助于深入理解MySQL服务器.下图展示了MySQL的逻辑架构图

递归的实际业务场景之MySQL 递归查询

喜欢就点个赞呗! 源码<--请点击此处查看 引入 当我看到一些评论时,例如下面的样子.我挺好奇这个功能是怎么样做出来的.进过查阅资料,发现这其实是 MySQL 的递归操作.下面就让我操作一下怎么实现 MySQL 的递归查询. 设计数据库 观察这种数据库设计,你会发现他都有一个父节点,一直到根节点,所以我们设计数据库的时候,应该设置一个 parentid 字段.所以,我们可以得到以下的数据库. sql 脚本如下 CREATE TABLE digui( id INT(11) NOT null aut

清除浮动方法解析

清除浮动方法解析 清除浮动带来的额外影响 如果对于浮动不熟悉的同学,可以看看介绍float的文章.传送门:CSS float 我们知道,在一个父元素内如果遇到某个浮动元素,此时父元素的高度会发生塌陷.针对父元素高度塌陷的问题,现在已经有了很多的解决方案.针对每一个方案,我们来进行深度的剖析. 添加空块级元素 这种方法比较容易,但是要注意的是这个空元素必须是一个块级元素,不能是行内元素或者是行内块元素.缺点就是多了一些没有意义的标签.代码如下. //HTML <div class="cont

MySQL Study之--MySQL体系结构深入解析

MySQL Study之--MySQL体系结构深入解析 MySQL体系架构 由连接池组件.管理服务和工具组件.sql接口组件.查询分析器组件.优化器组件.缓冲组件.插件式存储引擎.物理文件组成.mysql是独有的插件式体系结构,各个存储引擎有自己的特点. MySQL内存结构: Mysql 进程结构 Mysql不像oracle那样是通过多进程来完成其功能的.默认情况下,InnoDB存储引擎的后台线程有7个: 4个IO thread, 1个master thread, 1个锁(lock)监控线程,

【Android 多媒体开发】 MediaPlayer 状态机 接口 方法 解析

作者 : 韩曙亮 转载请著名出处 :  http://blog.csdn.net/shulianghan/article/details/38487967 一. MediaPlayer 状态机 介绍 Android MediaPlayer 状态即图例 : 1. Idle (闲置) 状态 和 End (结束) 状态 MediaPlayer 对象声明周期 : 从 Idle 到 End 状态就是 MediaPlayer 整个生命周期; -- 生命周期開始 : 进入 Idle (闲置) 状态; -- 生

QTP连接MYSQL数据库方法

1.首先安装mysql数据驱动,qtp在windows系统下操作连接mysql,所以下载mysql-connector-odbc-   5.1.8-win32.msi 下载地址:http://mysql.mirrors.pair.com/Downloads/Connector-ODBC/5.1/mysqlconnector-odbc-5.1.8-win32.msi 2.安装mysql驱动 ,默认安装即可. 3. 添加默认数据源 控制面板->管理工具->数据源ODBC->系统DNS->

用json方法解析webqq好友列表文本

本节课主要讲解了用json方法解析webqq好友列表文本,并显示在超级列表框里.相信大家看完本节课,会对json格式文本的解析有更深层次的理解. 用json方法解析webqq好友列表文本,布布扣,bubuko.com