sqlite CTE with UPDATE sqlite CTE with UPDATE sqlite sqlite

sqlite CTE with UPDATE


This works:

WITH RECURSIVE ui(a,l) AS( VALUES(1,0)   UNION ALL   SELECT yo.ad, ui.l+1     FROM yo JOIN ui ON yo.pa=ui.a     WHERE yo.pa!=yo.ad   ORDER BY 2 desc )UPDATE yo SET lv= (SELECT ui.l  FROM ui  WHERE ui.a=yo.ad);

This works too:

UPDATE yo SET lv=  (WITH RECURSIVE ui(a,l) AS   ( VALUES(1,0)     UNION ALL     SELECT yo.ad, ui.l+1       FROM yo JOIN ui ON yo.pa=ui.a       WHERE yo.pa!=yo.ad     ORDER BY 2 desc   )   SELECT ui.l   FROM ui   WHERE ui.a=yo.ad  );