SQL如何实现MYSQL的递归查询
|
众所周知,目前的mysql版本中并不支持直接的递归查询,但是通过递归到迭代转化的思路,还是可以在一句SQL内实现树的递归查询的。这个得益于Mysql允许在SQL语句内使用@变量。以下是示例代码。 创建表格插入测试数据查询语句0,SUBSTRING_INDEX( SUBSTRING_INDEX(@pathlevel,CONCAT('|',-1),'|',1) +1,@le+1) ) levels,@pathlevel:= CONCAT(@pathlevel,id,':',@le,'|') pathlevel,@pathnodes:= IF( pid =0,',0',CONCAT_WS(',@pathall) > 0,SUBSTRING_INDEX( SUBSTRING_INDEX(@pathall,1),@pathnodes ),pid ) )paths,@pathall:=CONCAT(@pathall,@pathnodes,'|') pathall FROM treenodes,(SELECT @le:=0,@pathlevel:='',@pathall:='',@pathnodes:='') vv ORDER BY pid,id ) src ORDER BY id最后的结果如下: ID 父ID父到子之间级数 父到子路径 以上就是一句SQL实现MYSQL的递归查询的实现全过程,希望对大家的学习有所帮助。 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql – 使用“not in”子查询编写select语句的最
- 跨数据库实现数据交流
- .net – 针对SQL等效的LINQ查询的性能
- sql2005 create file遇到操作系统错误5拒绝访问
- SQL Server一句SQL解决SQL中断号问题 推荐
- sql – “HAVING … GROUP BY”和“GROUP BY …
- sql-server – 旧的row_number()和SQL Server中基
- Pandas to_sql到sqlite返回’Engine’对象没有属
- win+apache+php+mysql+phpmyadmin环境配置方法
- SQLServer2005 按照日期自动备份的方法
