fix_null_ranks.sql 337 B

123456789101112
  1. -- 为 rank 为 NULL 的菜单设置默认排序值
  2. -- 按模块分组,模块内按 id 升序分配 rank
  3. UPDATE t_menu t
  4. JOIN (
  5. SELECT id,
  6. ROW_NUMBER() OVER (PARTITION BY parent_id ORDER BY id) AS new_rank
  7. FROM t_menu
  8. WHERE deleted = 0 AND `rank` IS NULL
  9. ) r ON t.id = r.id
  10. SET t.`rank` = r.new_rank
  11. WHERE t.`rank` IS NULL;