今天无意发现了一个牛人写的用一条sql语句实现递归查询效果,不禁感叹思维的魅力,mysql不像or

今天无意发现了一个牛人写的用一条sql语句实现递归查询效果,不禁感叹思维的魅力,mysql不像oracle有现成的递归函数,要我想就只有用存储过程或者程序了,逻辑都是很简单的,于是我想问一个终极问题:单条sql语句其实不也是相当于程序吗?为什么实现这个递归用程序如此简单而用一条sql实现却需要很巧妙的思维,为什么?

第1个回答  2016-06-17
主要看设计思路问题,执行效率,可读性,可维护性,兼容性等反面的考虑,没事绝对的最好与最差之说
第2个回答  2016-06-17
首先的他懂sql 其次就是脑子

sql语句实现递归查询所有节点,mysql和oracle都能用的
首先说一下Oracle的递归查询,相信大部分人都知道很简单。无非start with connect by 函数。下面是从pId向子节点递归查询的例子,unId是数据库表中的主键。如果是从子节点递归到父节点查询,就把start with 换成unid,prior左右对换 下面再讲MySql 的递归查询方式。MySql没有Oracle的强大功能,虽然都是同...

sql用什么方法可以实现递归函数?
在 SQL 中,你可以使用递归查询来实现递归函数。递归查询是一种查询,其中结果集由一条或多条 SELECT 语句和一条用于查找下一级行的 UNION ALL 语句组成。例如,假设你有一张表,其中包含父子关系的信息(即,每个记录都有一个父级 ID,表示它的父级),你可以使用以下递归查询来查询每个记录的所有...

如何用SQL语句,在一个表里面判断逐级编码以及逐级对应名称,从而实现...
SQL带递归的语法 参考如下sqlserver 真他数据库也有类似 IF OBJECT_ID('tb') IS NOT NULL DROP TABLE tb create table tb(id varchar(3) , pid varchar(3) , name varchar(10))insert into tb values('001' , null , '广东省')insert into tb values('002' , '001' , '广州市')...

如何用一段SQL语句递归找到一个目录下的所有子目录
insert into @Table values ( 2, 1 )insert into @Table values ( 3, 2 )

...sql写法:树节点放一个表中,怎么用一条语句查询一个节点及对应的所有...
建议使用递归,oracl语法示例如下、CREATE TABLE TBL_TEST (ID NUMBER, --主键 NAME VARCHAR2(100 BYTE),PID NUMBER DEFAULT 0 ---父节点主键 );插入测试数据:INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('1','10','0');INSERT INTO TBL_TEST(ID,NAME,PID) VALUES('2','11...

DB2,实现查询结果中多行字段合并到一行上的SQL语句写法 ?
SQL0347W 递归公共表表达式 "TEST.T2" 可能包含无限循环。 SQLSTATE=01605 10 F aaa bbb ccc 20 M ddd eee fff 30 X ggg hhh ttt yyy 已选择 3 条记录,打印 1 条警告消息。db2 =>

一个软件项目。项目的主要内容和实现的主要功能说明区别
不写使用Word(测试用例)测试用例。应该是一个专门的系统,可以测试管理器,你也可以开发自己的小一个ASP.NET网站。其主要目的是追踪和浏览。 4。你的团队还没有建立一个门户网站? 有一个门户网站把联系方式,基线时间表,新闻和更多。推荐的SharePoint Portal Server 2003来实现15分钟就搞定了。可以买不起SPS 2003...

编写Java程序,使用while循环语句计算1+1\/2!+1\/3!…1\/20!之和.
package practice;\/ 使用while循环 计算1+1\/2!+1\/3!+...+1\/20!a用于存储前n个阶乘分之一 sum 用于累加和 \/ public class WhileDemo { public static void main(String[] args) { \/*i=i+1的简写形式是i+=1;但是二者有本质的区别:如果 i是short类型,+=:会自动类型提升,而=则不会 所...

相似回答