How to have this code/output in MySql:
Had a recursive cte in MSSQL to fill a table with random data without loop e.g begin/end. Searched for similar logic in MySql but most or all solutions were using begin/end or for loops. Wonder if you could suggest a solution without loop in MySql.
Thanks
--MSSQL cte:------------------------------------
with t1( idi,val ) as
(
  select 
  idi=1
  ,val=cast( 1 as real)
  union all
  select
  idi=idi+1
  ,val=cast(val+rand() as real)
  from t1
  where idi<5
)
select idi,val from t1
-----------------------------------------------
Output in MSSQL:( semi random values)
idi  |  val  
-------------
1    | 1  
2    | 1.11  
3    | 1.23  
4    | 1.35  
5    | 1.46  
Edit:
Regarding discussions which considers set based codes as loop based codes indeed, I could understand this but just out of interest gave it a try in MSSQL 2008r2, here is the result:
1- above code with 32000 recursion took 2.812 sec
2- above output created with WHILE BEGIN END loop for 32000 took 53.640 sec
Obviously this is a big difference in execution time.
Here is the loop based code:
  insert into @t1(idi,val)
  select 
     idi=1
     ,val=1
  declare @ii  int = 2
  while @ii<32000
  begin
  insert into @t1(idi,val)
  select 
       idi=idi+1
       ,val=val+rand()
  from @t1
  where idi=@ii-1
  set @ii=@ii+1
  end
  select * from @t1
 
    