本帖最后由 毕影彬 于 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游标不支持,晕死。
现在卡在这个地方了,各位帮忙看下。
|