我需要在SELECT查询的每一行中获得一个渐进数字。
即。查询结果没有编号:
user_id
paola
Carla
Marta
我想要的是
number user_id
1 paola
2 Carla
3 Marta
我知道问题与
中的问题非常相似MySQL - Get row number on select
在第一个查询中,答案中建议的代码似乎对我有用但是当我回想起查询时,或者当我尝试导出结果时,我在行编号所在的列中得到一个NULL值是。
你知道为什么吗? 我在变量实例中做错了吗?我使用的代码如下:
set @x=0;
SELECT @x:=@x + 1 AS row_index, user_id FROM TABLE ORDER BY user_id
答案 0 :(得分:0)
您的查询看起来是正确的。我的猜测是你有一个拼写错误,所以设置的变量与递增的变量不同。
顺便说一下,这些可以组合成一个语句:
SELECT @x:=@x + 1 AS row_index, user_id
FROM TABLE cross join
(select @x := 0) const
ORDER BY user_id;
也就是说,select
实际上可以初始化变量。
答案 1 :(得分:0)
试试这个
SELECT @x:=@x + 1 AS row_index, user_id FROM
( SELECT row_index , user_id from TABLE ORDER BY user_id ) t1 ,
(SELECT @x:=0) t2;