当前位置: 首页 > news >正文

徐州手机网站开发公司电话江苏五星建设网站

徐州手机网站开发公司电话,江苏五星建设网站,公司网站上面的动画怎么做,注册外贸网站有哪些问题mysql递归层次查询 最近在做一个从oracle数据库到mysql数据库的移植#xff0c;遇到一个这样的问题 在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但shi#xff0c;在MySQL的目前版本中还没有对应的函…mysql递归层次查询 最近在做一个从oracle数据库到mysql数据库的移植遇到一个这样的问题      在Oracle 中我们知道有一个 Hierarchical Queries 通过CONNECT BY 我们可以方便的查了所有当前节点下的所有子节点。但shi在MySQL的目前版本中还没有对应的函数  换句话来说想要用mysql实现递归查询根本做不到  可是经过我数天茶不思饭不想的刻苦琢磨终于想到了一个合理的适用于mysql和其他sql的解决方案。 www.2cto.com   方案一出就秋风扫落叶之势席卷整个dao层~~~所到之处所有问题迎刃而解让所有问题都不再为问题 都成为了我这个函数的炮灰而已。。。  话不多说待我把解决方法仔细道来~~~~~  下面是sql脚本想要运行一下 把下边的粘贴复制下来做一个treenodes.sq直接运行便是。。。  /*  Navicat MySQL Data Transfer  Source Server         : mysql_demo3  Source Server Version : 50521  Source Host           : localhost:3306  Source Database       : test  Target Server Type    : MYSQL  Target Server Version : 50521  File Encoding         : 65001  www.2cto.com   Date: 2012-09-02 21:16:03  */  SET FOREIGN_KEY_CHECKS0;  -- ----------------------------  -- Table structure for treenodes  -- ----------------------------  DROP TABLE IF EXISTS treenodes;  CREATE TABLE treenodes (  id int(11) NOT NULL,  nodename varchar(20) DEFAULT NULL,  pid int(11) DEFAULT NULL,  PRIMARY KEY (id)  ) ENGINEInnoDB DEFAULT CHARSETlatin1;  -- ----------------------------  -- Records of treenodes  -- ----------------------------  INSERT INTO treenodes VALUES (1, A, 0);  INSERT INTO treenodes VALUES (2, B, 1);  INSERT INTO treenodes VALUES (3, C, 1);  INSERT INTO treenodes VALUES (4, D, 2);  INSERT INTO treenodes VALUES (5, E, 2);  INSERT INTO treenodes VALUES (6, F, 3);  INSERT INTO treenodes VALUES (7, G, 6);  INSERT INTO treenodes VALUES (8, H, 0);  INSERT INTO treenodes VALUES (9, I, 8);  INSERT INTO treenodes VALUES (10, J, 8);  INSERT INTO treenodes VALUES (11, K, 8);  INSERT INTO treenodes VALUES (12, L, 9);  INSERT INTO treenodes VALUES (13, M, 9);  INSERT INTO treenodes VALUES (14, N, 12);  INSERT INTO treenodes VALUES (15, O, 12);  INSERT INTO treenodes VALUES (16, P, 15);  INSERT INTO treenodes VALUES (17, Q, 15);  www.2cto.com   ---------------------------------------------------  上边是sql脚本在执行select * 之后显示的结果集如下所示  mysql select * from treenodes;  --------------------  | id | nodename | pid  |  --------------------  |  1 | A        |    0 |  |  2 | B        |    1 |  |  3 | C        |    1 |  |  4 | D        |    2 |  |  5 | E        |    2 |  |  6 | F        |    3 |  |  7 | G        |    6 |  |  8 | H        |    0 |  |  9 | I        |    8 |  | 10 | J        |    8 |  | 11 | K        |    8 |  | 12 | L        |    9 |  | 13 | M        |    9 |  | 14 | N        |   12 |  | 15 | O        |   12 |  | 16 | P        |   15 |  | 17 | Q        |   15 |  --------------------  17 rows in set (0.00 sec)  树形图如下  1:A  -- 2:B  |    -- 4:D  |    -- 5:E  -- 3:C  -- 6:F  -- 7:G  8:H  -- 9:I  |    -- 12:L  |    |    --14:N  |    |    --15:O  |    |        --16:P  |    |        --17:Q  |    -- 13:M  -- 10:J  -- 11:K    --------------------------------------------  如果给你一个这样的table让你查询根节点为1下的所有节点记录注意也包括根节点肿麽办  可能有不少人想到connect by 函数但是我灰常遗憾的告诉你咱这儿是mysql  好客观您勒上眼我的解决办法是  利用函数来得到所有子节点号。  闲话少续看我的解决方法  创建一个function getChildLst, 得到一个由所有子节点号组成的字符串.   mysql delimiter //  mysql  mysql CREATE FUNCTION getChildLst(rootId INT)  - RETURNS varchar(1000)  - BEGIN  -   DECLARE sTemp VARCHAR(1000);  -   DECLARE sTempChd VARCHAR(1000);  -  -   SET sTemp $;  -   SET sTempChd cast(rootId as CHAR);  -  -   WHILE sTempChd is not null DO  -     SET sTemp concat(sTemp,,,sTempChd);  -     SELECT group_concat(id) INTO sTempChd FROM treeNodes where FIND_IN_SET(pid,sTempChd)0;  -   END WHILE;  -   RETURN sTemp;  - END  - //  Query OK, 0 rows affected (0.00 sec)  mysql  mysql delimiter ;  www.2cto.com   使用我们直接利用find_in_set函数配合这个getChildlst来查找  mysql select getChildLst(1);  -----------------  | getChildLst(1)  |  -----------------  | $,1,2,3,4,5,6,7 |  -----------------  1 row in set (0.00 sec)  mysql select * from treeNodes  - where FIND_IN_SET(id, getChildLst(1));  --------------------  | id | nodename | pid  |  --------------------  |  1 | A        |    0 |  |  2 | B        |    1 |  |  3 | C        |    1 |  |  4 | D        |    2 |  |  5 | E        |    2 |  |  6 | F        |    3 |  |  7 | G        |    6 |  --------------------  7 rows in set (0.01 sec)  mysql select * from treeNodes  - where FIND_IN_SET(id, getChildLst(3));  --------------------  | id | nodename | pid  |  --------------------  |  3 | C        |    1 |  |  6 | F        |    3 |  |  7 | G        |    6 |  --------------------  3 rows in set (0.01 sec)  --------------------------------------------  只要按我的做百发百中弹无虚发遇到问题万变不离其宗直接粘贴复制就是。。。  补充 还可以做嵌套查询  select id,pid from treeNodes where id in(  select id from treeNodes where FIND_IN_SET(id, getChildLst(3))  );  子查询的结果集是  www.2cto.com   --------  id  ----  3  6  7  -------  然后经过外层查询就是  id  pid  3   1  6   3  6   6  ---------  转自http://www.2cto.com/database/201209/152513.html 转载于:https://www.cnblogs.com/yuan951/p/6429441.html
http://www.pierceye.com/news/447882/

相关文章:

  • 网站建设全包广做短视频素材哪里找
  • 做网站为什么每年都要续费企业官网建站步骤
  • 培训行业门户网站建设方案专业网站运营制作
  • 百度网站两两学一做心得体会江苏专业网站建设费用
  • 做企业网站的架构图网站上的销售怎么做
  • 网站开发思维导图内容淘宝客在百度推广网站么做
  • 国外美容网站crm开发
  • 辽宁建设资质申报网站wordpress提示插件安装
  • 做网站用什么软件语言wordpress绑定域名后乱码
  • 网站建设邀请函郑州网站搭建的公司
  • 网站制作论文优帮云广州网站设计首选柚米
  • 唐山建设厅官方网站我有一个网站怎么做外贸
  • 荣成城市规划建设局网站宁晋网站开发
  • 福州电子商务网站手机触屏版网站开发
  • 佛山网站建设骏域开发公司综合部内部管理章程
  • 网站建设 迅雷下载西安建设工程信息网网上招投标
  • 浅析个人网站的设计论文二本网络工程就业前景
  • 网站没有做301的后果是什么苏州工业园区两学一做教育网站
  • 品牌网站建设定位湖南做网站的公司有哪些
  • mvc做的网站郑州作网站
  • 门户网站栏目建设购物类网站开发
  • 专业的网站建设企业新浪网 网站建设
  • 长春网站建设wang汕头网站建设网站
  • 自助建站网站哪个好网站做nat映射需要哪些端口
  • 免费手机网站平台注册嘉兴建站公司
  • 什么网站可以做兼职美工网站建设方案500字
  • 宁波做网站优化网站专题页怎么做
  • 西安网站建设q.479185700強网站改版301是什么意思
  • 网站推广服务 商务服务网站建设官方网站
  • 建设电影网站的关键苏州网站建设业务的公司