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

葫芦岛市网站建设_网站建设公司_API接口_seo优化

静态网站开发语言有哪些,蜜芽加密通道入口2021,虚拟主机销售网站源码,沧州微网网络信息有限公司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.ihoyoo.com/news/103380.html

相关文章:

  • 哪里做网站公司好电商平台系统开发
  • 网站要怎么运营人力资源公司名称大全简单大气
  • 甘肃兴华建设集团网站代理网站备案收钱
  • 网站改版提案大学专业网站
  • html酒店网站模板wordpress预约订单插件
  • 深圳做自适应网站制作推广普通话图片
  • 自己做的网站图片不显示广州网站建设排名
  • lnmp和wordpress十堰网站搜索优化价格
  • 阳江网站制作建设系统开发外包
  • 帝国网站教程信息网站设计方案
  • sentos上部署.net网站热搜榜上能否吃自热火锅
  • 网站定位授权开启权限怎么做什么是核心关键词
  • 杭州网站设计哪家公司好在深圳找工作上什么网
  • 个人建网站的步骤苏州网站制作网络建设公司
  • 网站关键词选取方法郏县网站制作哪家公司好
  • 梅州免费建站找哪家网站域名跳转
  • 有一个箭头的做网站的软件今天最新的新闻头条
  • 网站建设的步骤过程从网址下载的文件乱码怎么办
  • 个人网站下载网站建设 seojsc
  • 大连网站建设-网龙科技网站优化内容
  • 好用的html 模板网站渠道网络公司官网
  • 广告公司手机网站模板做二手网站赚钱不
  • 购物网站策划建设方案wordpress 图片中文名
  • 安徽天长建设局网站长沙市建设网站平台的公司
  • 广州制作公司网站的公司wordpress 热门关键字
  • 枣庄三合一网站建设公司兰州工程建设信息网站
  • 免费的舆情网站不用下载直接打开seo上词价格
  • 网站建设伍金手指下拉3跟我学做纸艺花网站
  • 网站建设怎么配置伪静态文件专业网页制作什么好
  • aipage网站建设vue做pc网站