Mysql 使用子查询和具体id时结果中的@r:=@r+1的值不一样

Mysql 使用子查询和具体id时结果中的@r:=@r+1的值不一样, 具体ID的为正确的

select xx,@r:=@r+1 from a where id in (1,2,3) order by xx;
select xx,@r:=@r+1 from a where id in (select id from xx) order by xx;
使用子查询会导致 @r:=@r+1 未按正确顺序加

如图

img

带佬们帮忙看看怎么解

我解决了告辞