mysql并行查询语句
简介: 在刚刚结束的乌镇世界互联网大会上,阿里云自研POLARDB云原生数据库当选世界互联网领先科技成果。POLARDB既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、自...
2024.11.15查所有子级这样的需求很常见,在Oracle我们可以使用 start with connect by prior语法来查找所有子级。下边是简单例子
select * from t_test s start with s.parent_id = ‘46546546465‘connect by prior s.tree_id = s.parent_id那么在mysql中该如何查找呢?
Mysql8以上版本可以使用WITH RECURSIVE语法进行递归查询,可以轻松查找指定父级下所有子级。Mysql8以下版本并没有相应的语法或方法来进行递归查询,那么我们可以使用存储过程、自连接+变量等方式,今天来说说使用自连接+变量来查找指定父级下所有子级。
--不包含指定id自身select * FROM(select * FROM PRODUCT where PID > 0 ORDER BY PID, PRODUCT_ID DESC) sorted,(select @pv :=3409) initWHERE (FIND_IN_SET(PID,@pv)>0 And @pv := concat(@pv, ‘,‘, PRODUCT_ID))原理:
可以将这个sql拆开成两部分来看第一部分:
select * FROM(select * FROM PRODUCT where PID > 0 ORDER BY PID, PRODUCT_ID DESC) sorted,(select @pv :=3409) init查询结果:
第二部分就是where条件
WHERE (FIND_IN_SET(PID,@pv)>0 And @pv := concat(@pv, ‘,‘, PRODUCT_ID))解读:每条数据依次判断pid在@pv中是否存在,如果FIND_IN_SET(PID,@pv)>0,证明存在,那么将此时pid对应的数据返回,判断为null或等于0,则证明不存在,那么这条数据就不会被返回,之后再将此条数据的id放进@pv中。
您的赞和关注是对我最大的肯定,希望大家多多支持,谢谢大家。
简介: 在刚刚结束的乌镇世界互联网大会上,阿里云自研POLARDB云原生数据库当选世界互联网领先科技成果。POLARDB既融合了商业数据库稳定可靠、高性能、可扩展的特征,又具有开源云数据库简单开放、自...
2024.11.15大家好,今日继续讲解VBA数据库解决方案,今日的内容是第70讲: 数据查询中,三个工作表联合查询的方法。在各种查询中,内连接,左外连接,右外连接等等,这些方法大家在工作中要多加利用,并且灵活利用,利用...
2024.11.15正文在传统的后台管理系统里面经常会需要展示多级菜单关系,今天我们来学一下如何使用一条SQL语句展示多级菜单。现在我们有一张corpinfo单位表,里面有一个belong字段指向上级单位,首先来看一下现...
2024.11.11以前有个功能需要递归查询的节点,自己不会写,从网上摘了个sql,改了改能用。这几天又遇到一个类似的功能,但早已忘记sql怎么写,于是翻箱倒柜找出以前和朋友的聊天记录找到了sql,改了改又能用了。怕以后...
2024.11.11一、概述递归查询是一种在数据库中处理具有层级结构数据的技术。它通过在查询语句中嵌套引用自身,以实现对嵌套数据的查询。递归查询在处理树状结构、父子关系或层级关系的数据时非常有用。在MySQL中,递归查询...
2024.11.15