A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 毕影彬 中级黑马   /  2012-10-23 07:27  /  921 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 毕影彬 于 2012-10-24 06:38 编辑

有一个数据结果A,大致是这样的
id v_id user_id change
1 1 1234 1
2 1 1234 2
3 2 1234 1
4 2 3456 2
5 3 6789 1
6 3 6789 2
(其中id是虚拟的,方便描述问题,且这个结果集是order by“时间”之后的结果,不能轻易变动。)

我的目的,根据v_id,得到与1234用户有关的所有记录,大致如下
1 1 1234 1
1 1 1234 2
2 2 1234 1
2 2 3456 2

如果只是用简单的where条件中带user_id=1234,就会丢掉最后一条记录。所以没办法,我只能做存储过程。(其实这也是我第一个问题,能否用其它方法实现,让我一次即得到所需要的结果?)。存储过程我就不多说了,无非是用IN加游标来实现而已。


但又会遇到另一个问题,比如根据v_id,得到与3456用户有关的所有记录,想得到如下结果
1 2 1234 1
2 2 3456 2
但实际用游标遍历结果A时,当发现第3条记录user_id等于1234时,我会认为user_id不符合而跳过,但读取第4条记录,发现user_id等于3456,就知道这是我要的,且知道v_id为2,我就必须向后遍历游标,把以前读过的,再重新遍历回来,可是偏偏MySQL游标不支持,晕死。

现在卡在这个地方了,各位帮忙看下。

评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1 很给力!

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马