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 Server登录时登录名下拉列表框中的选项
- SqlServer 按时间段查询问题
- SQL Server 2005 模板参数使用说明
- SQL Server中查看对象定义的SQL语句
- 浅谈SQL Server 2016里TempDb的进步
- Select count(*)、Count(1)和Count(列)的区别及执行方式
- SQL获取第一条记录的方法(sqlserver、oracle、mysql数据库)
- SQL Server创建维护计划失败(SQL Server:14234 错误)的解
- 在sqlserver2005中安装sql server 2000的示例数据库northwi
- 使用sql语句创建和删除约束示例代码
