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

烟台 o2o平台带动做网站行业WordPress分类目录图标

烟台 o2o平台带动做网站行业,WordPress分类目录图标,c 网站开发的书籍,南昌易动力网站建设公司你有没有遇到过这样一种情况#xff1a; 一张表就实现了一对多的关系#xff0c;并且表中每一行数据都存在“爷爷-父亲-儿子-…”的联系#xff0c;这也就是所谓的树形结构 对于这样的表很显然想要通过查询来实现价值绝对是不能只靠select * from table 来实现的#xff0…你有没有遇到过这样一种情况 一张表就实现了一对多的关系并且表中每一行数据都存在“爷爷-父亲-儿子-…”的联系这也就是所谓的树形结构 对于这样的表很显然想要通过查询来实现价值绝对是不能只靠select * from table 来实现的下面提供两种解决方案 1.自连接 inner join 关键可以实现多种分类的查询其实SQL很简单 SELECTone.id one_id,one.label one_label,two.id two_id,two.label two_label FROMcourse_category oneINNER JOIN course_category two ON two.parentidone.idINNER JOIN course_category three ON three.parentidtwo.idWHERE one.id1 AND one.is_show1 AND two.is_show1ORDER BY one.orderby,two.orderby也是规规矩矩的就查出一整棵树 这种查询的原则就是通过parentId去实现“爷爷找爸爸爸爸找儿子儿子找孙子”,下面来逐帧慢放 1.one 2.one,two 3.one,two,three 可以看到只有在树的层级确定的情况下我才能选择性的去自连接子表某种意义上来讲这种方法存在弊端我要是insert进去层级更低的新子节点那我的sql就得改变从而就造成了一个“动一发而牵全身”的硬编码问题实在是不够稳妥 2.递归 向上递归 首先声明如果mysql的版本低于8是不支持递归查询的函数的 下面来看一下如何用递归优雅的实现从树根查到树顶 先来看一个简单的Demo with RECURSIVE t1 AS(SELECT 1 AS nunion allSELECT n1 FROM t1 WHERE n5)SELECT * from t1该怎么理解这每一步呢 WITH RECURSIVE t1 AS 这是递归查询的开始创建了一个名为t1的递归表。 SELECT 1 AS n 在t1表中插入了一个初始行值为1命名为n。 UNION ALL 使用UNION ALL运算符将初始行和递归查询结果合并形成递归步骤。这也就是下次递归的起点表 SELECT n1 FROM t1 WHERE n5 递归部分的查询从t1表中选择n加1的结果当n小于5时进行递归。 SELECT * FROM t1 最终查询返回t1表的所有行。 其实在使用递归的过程只需要注意要去避免死龟就好 如何去查开头的那张树形表呢这样就好: with recursive temp as ( select * from course_category p where id 1union all select t.* from course_category t inner join temp on temp.id t.parentid ) select * from temp order by temp.id, temp.orderby下面我们逐帧分析 其实关键的地方就在于第三步在树根的基础上去找叶子 神之一手 select t.* from course_category t inner join temp on temp.id t.parentid 这就是递归相较于第一种方式可以无视层级inner jion的关键因为这个动作已经被递归自动完成了递归巧妙地一点就在这里 向下递归 基于向上递归父找子的思想向下递归则是子找父即在叶子基础上union all之后去找根 子的parentId父的id with recursive temp as ( select * from course_category p where id 1-1-1union all select t.* from course_category t inner join temp on temp.parentid t.id //temp表是下次递归的基础 ) select * from temp order by temp.id, temp.orderby值得注意的是Mysql为了避免无限递归递归次数为1000次也可以人为来设置cte_max_recursion_depth和max_execution_time来自定义递归深度和执行时间 使用递归的好处无需言语一次io连接就搞定了全部
http://www.w-s-a.com/news/179395/

相关文章:

  • 做网站成功建设银行网站网址
  • 自动生成网站上海十大活动策划公司
  • 企业网站建设源码HTML论述市场营销对网站设计的影响
  • 网站设计常见问题建设工程网上质检备案网站
  • 网站怎样优化文章关键词建设网站需要钱吗
  • 加强网站建设和管理的通知重庆网站推广产品
  • 网站建设术语解释百度发布信息的免费平台
  • 情公司做的网站seo与网站优化 pdf
  • 做一个购物网站多少钱江阴市住房和城乡建设局网站
  • 网站建设都包括哪些ps怎么做网站首页和超链接
  • 怎样低成本做网站推广编辑网站教程
  • 邯郸网站建设信息网站开发报价人天
  • 王店镇建设中心小学网站酷玛网站建设
  • 网站需求方案wordpress博客主题推荐
  • 网站安全证书过期怎么办那个视频网站最好最全网址
  • 外贸上哪个网站开发客户建行个人网上银行登录入口
  • 空间除了可以做网站还能干什么qq钓鱼网站
  • 网站 技术企业网站用免费程序
  • 做网站的中文名字汕尾网站开发
  • 网站推广效果推广网站推荐
  • 腾讯企业网站建设网络推广比较经典和常用的方法有
  • 四川成都网站网页设计上海外贸网站制作公司
  • wordpress模板首页图片锦州网站做优化
  • 哔哩哔哩网站建设分析有哪些做网站好的公司
  • 福建建设执业中心网站沧州网络推广外包公司
  • 做网站怎么改关键词营销网站建设818gx
  • 广撒网网站怎么进行网络营销
  • 中职计算机网站建设教学计划电商网站如何避免客户信息泄露
  • 惠州微网站建设外贸进出口代理公司
  • 网站建设最常见的问题建设银行网站机构