如何按升序对具有非连续值的 MySQL 主索引重新编号?

Patricia Arquette
发布: 2024-10-25 11:26:30
原创
707 人浏览过

How can I renumber a MySQL primary index with non-sequential values in ascending order?

为有序数据重新编号主索引

问题:

你有一个 MySQL 表其值未按顺序编号的主索引。如何按顺序(1、2、3、...)重新编号?

答案:

虽然可以使用其他方法,但这里有另一种方法不需要创建临时表。

解决方案:

执行以下SQL语句:

<code class="sql">SET @i=0;
UPDATE table_name SET column_name=(@i:=@i+1);</code>
登录后复制

解释:

  • 第一行将会话变量 @i 初始化为 0。
  • 第二行对名为 table_name 的表执行 UPDATE 查询。
  • 在 UPDATE 内查询时,SET 子句为主索引列 column_name 分配一个新值。
  • 新值是通过将会话变量 @i 加 1 来计算的。
  • 当查询执行时,@ i 变量不断递增,确保主索引值按顺序重新编号。

以上是如何按升序对具有非连续值的 MySQL 主索引重新编号?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!