我正在修复我们的(论坛)数据库,因为某些线程中的多个帖子似乎显示为相同的帖子编号(#2)。似乎他们在每个相应的论坛主题中都持有“1”的位置。
我设法找到一个查询,通过下面的查询将这些位置值设置为正确的数字:
select @i := -1; update `xf_post` set position = (select @i := @i + 1) where thread_id=1;
不幸的是,我只是通过 MySQL 命令行执行此更新查询,在该命令行中我不断选择向上箭头键,将“thread_id”值增加 1,然后按 Return 键。有没有更快的方法通过循环或游标来做到这一点?我对 SQL 语法的其他部分不是很熟悉,我只了解基础知识。