MySQL 根据行号将 table 加入自身 returns 无数据

MySQL join table to itself based on row number returns no data

我有一个包含 ID 列的日志 table,我想执行以下操作:

我的objective是获取特定行以及它之前的行。下面的 SQL 查询实际上 returns 什么都没有。就像它完全忘记了行号一样。加入 ID returns 就好了。

在MySQL中是否需要做些什么来支持这种操作?

select * from 
    (select id, @rownum := @rownum + 1 as 'row' 
        from logs, (select @rownum := 0) r order by id) a
join
    (select id, @rownum := @rownum + 1 as 'row' 
        from logs, (select @rownum := 0) r order by id) b
on a.row = b.row;

在第二个查询中更改变量名称,在两个查询中使用相同的变量会产生意外结果

select * from 
    (select id, @rownum := @rownum + 1 as 'row' 
        from logs, (select @rownum := 0) r order by id) a
join
    (select id, @rownum1 := @rownum1 + 1 as 'row1' 
        from logs, (select @rownum1 := 0) r order by id) b
on a.row = b.row1;