是否有可能在一个SELECT语句中的mysql / mariadb中创建一个计数器。我尝试了以下操作,但它在第一列中仅返回值1:
SELECT @rownr := IF(ISNULL(@rownr),0,@rownr)+1 AS rowNumber, * FROM table_x LIMIT 0,10
如果我在相同的mysql-instance中更频繁地运行该语句,它将从最后一个数字开始计数。因此,第二次从2开始,第三次从12开始。这意味着该变量已创建,但似乎仅在发出SQL语句之前实例化时才可用于修改。
考虑:
set @rn := 0;
select t.*, @rn := @rn + 1 rowNumber
from (select t.* from mytable t order by id) t
limit 10;