| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3034 人关注过本帖
标题:比如一个数据库有三个字段 id,yid,name 查找ID为10的记录,查找到后取YID和 ...
只看楼主 加入收藏
wzh210128525
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-3-30
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
比如一个数据库有三个字段 id,yid,name 查找ID为10的记录,查找到后取YID和name内容;之后再查找ID为上次查找的YID内容,以次类推 直到YI
如题
搜索更多相关主题的帖子: 数据库 记录 
2016-03-30 17:08
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:10 
关注一下
2016-03-30 21:43
mywisdom88
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:191
帖 子:3146
专家分:8408
注 册:2015-3-25
收藏
得分:10 
以下是引用wzh210128525在2016-3-30 17:08:42的发言:
比如一个数据库有三个字段 id,yid,name 查找ID为10的记录,查找到后取YID和name内容;之后再查找ID为上次查找的YID内容,以次类推 直到YID为0
如题

这其实就是一个递归查询,大概的思路如下
id=10
用ID=10调用,递归函数(10)

递归函数()的大概思路
先用ID的参数,来查找,如果找到了,同时满足YID不等于0,就把YID的值赋给ID,也就是,ID=YID
然后在函数内部再调用自身函数,如
ID=YID
递归函数(ID)

由于,各给语言的函数写法不同。下面用VFP的写法。
*数据库:tmp
*字段:id,yid,name
*结束:YID=0
*构造测试数据
create cursor tmp(id int,yid int,name C(10))
INSERT INTO tmp(id,yid,name) values(10,11,"10")
INSERT INTO tmp(id,yid,name) values(11,12,"11")
INSERT INTO tmp(id,yid,name) values(12,13,"12")
INSERT INTO tmp(id,yid,name) values(13,14,"13")
INSERT INTO tmp(id,yid,name) values(14,0,"14")
INSERT INTO tmp(id,yid,name) values(15,16,"15") &&这个行是多出的数据,看看调用的时候,有没显示他,正常是不显示他的

*调用开始,用ID=10调用,并显示数据
=递归(10)

*递归函数
FUNCTION 递归(id1)
select id,yid,name from tmp where id=id1 into array ary1
*输出id,yid,name
?ary1(1,1),ary1(1,2),ary1(1,3)
*判断是否递归,条件是 YID>0
if ary1(1,2)>0
   id2=ary1(1,2)
   递归(id2)
else
   return
endif

endfunc
2016-04-01 12:38
快速回复:比如一个数据库有三个字段 id,yid,name 查找ID为10的记录,查找到后取 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011418 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved