请教一个 MySQL 循环查询问题

2014-08-29 16:52:28 +08:00
 raycloud
假设有一张表t,有字段userid, price, uid
现需要写一个函数,传入一个uid, 查出price,然后把查出来的这条记录userid当成uid继续查询,一直循环下去, 每次查出来的记录可能不止一条,需要把所有查出来的price相加,请问这个函数怎么写?
语言表达能力一般,不知说清楚了没
4467 次点击
所在节点    MySQL
10 条回复
Livid
2014-08-29 17:47:53 +08:00
停止条件是当 SELECT 返回 0 条结果么?
zts1993
2014-08-29 17:50:59 +08:00
我还以为你要问SQL语句怎么写呢。。。那个,,终止条件是什么?

//@return array userid
getUsersByUID(int uid){}

getPriceByUsers(array users){}

getUsersByUsers(array users){}

users=getUsersByUID(uid)
price=0

while(!empty(users)){
price=getPriceByUsers(users)
users=getUsersByUsers(users)
}


伪代码看着清楚,可能效率不是最高,但是应该挺好理解的
不一定对啊。。求轻拍
raycloud
2014-08-29 17:53:39 +08:00
@Livid 是的,没错
raycloud
2014-08-29 17:54:54 +08:00
@zts1993 大哥,我需要的SQL函数,不是用程序写
Livid
2014-08-29 17:55:59 +08:00
@raycloud 单条 SQL 应该是做不到。除非用存储过程。
raycloud
2014-08-29 17:58:46 +08:00
@Livid 嗯,对存储过程不太熟悉,可以给个简单例子不,用的是MySQL,^_^
zts1993
2014-08-29 18:00:01 +08:00
@raycloud 存储过程
qiayue
2014-08-29 18:02:26 +08:00
我觉得是否可以重新设计数据表结构呢,使得更易查询
现有的数据可以通过程序转到新的结构
raycloud
2014-08-29 18:04:04 +08:00
@qiayue 这个...我也这么想
wangyongbo
2014-08-29 18:04:51 +08:00
@qiayue 有道理。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/130644

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX