MySQL 根据行号将 table 加入自身 returns 无数据
MySQL join table to itself based on row number returns no data
我有一个包含 ID 列的日志 table,我想执行以下操作:
- Select 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;
我有一个包含 ID 列的日志 table,我想执行以下操作:
- Select 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;