mysql中的先前记录

时间:2019-01-23 09:13:15

标签: mysql sql

id game_id user_id user_playing_status user_turn_status
 1       1       2                   1                1
 2       1       4                   1                0
 3       1       6                   1                0

我们如何访问当前记录的先前记录?

如果表中有三个记录r1,r2,r3 因此,以前的r2记录应该是r1,r3应该是r1,r1应该是r3。

我使用以下查询

select user_id 
from current_playing_users 
where id < (select id from current_playing_users where user_id = 2) 

但是我没有得到第一条记录的先前记录。我想以逆时针方式获得记录。就像图像中以前的user_id 2应该是6

2 个答案:

答案 0 :(得分:0)

您可以使用LAG功能

select LAG(user_id) over (order by {your desired order}) as previous_row
from ..

LAG函数以预定顺序返回所需列的前一个单元格。

答案 1 :(得分:0)

是否正在寻找与相关相关的子查询? :

select cu.*.
       (select cu1.user_id
        from current_playing_users cu1
        where cu1.id < cu.id
        order by cu1.id desc
        limit 1
       ) as prev_user_id
from current_playing_users cu;