将字段编号替换为其在表 SQL、MySQL 中的行位置



我有表格帖子,其中id_post是主键和自动增量

id_post  | post
1        hi1
3        hi3
27       hi27
45       hi45
67       hi67
69       hi69

我想更新id_post以便它在表中获取其行位置

id_post  | post
1        hi1
2        hi3
3       hi27
4       hi45
5       hi67
6       hi69

怎么可能呢?

我在想使用ROW_NUMBER()

运行以下命令:

SET @x = 0;
ALTER TABLE `posts` AUTO_INCREMENT = 1;
UPDATE `posts` SET `id_post` = @x:= @x + 1;

您可以使用 oprion 作为波纹管:

以前 +--------+--------+ |id_post |项标识 | +--------+--------+ | 1 |   Hi1 | | 3 |  Hi3 | | 27 |  Hi27 | | 45 |  Hi45 | | 67 |  Hi67 | | 69 |  HI69 | +--------+--------+ 后 -------------------- MYSQL> SET @nbr=0; 查询正常,0 行受到影响(0.00 秒( MySQL>更新帖子设置 id=@nbr:=@nbr+1 +--------+--------+ |id_post |帖子 | +--------+--------+ | 1 |   Hi1 | | 2 |  Hi3 | | 3 |  Hi27 | | 4 |  Hi45 | | 5 |  Hi67 | | 6 |  HI69 | +--------+--------+ 6 行(0.00 秒(

最新更新