首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用mysql从尾到头重写行id

如何用mysql从尾到头重写行id
EN

Stack Overflow用户
提问于 2017-10-12 12:27:01
回答 1查看 285关注 0票数 1

我需要倒转整个表的id从头部最变成一个尾巴。例如。我在一张桌子上有10排。我需要在日期前把第10到第1次和第1次到第10次订单。此外,结构和数据仍然存在。

我不知道怎么问这样的问题。很抱歉那些我的问题看起来很愚蠢或试图-在你看来更少。

代码语言:javascript
复制
+----+------+-------------------+
| id | item |      dtime        |
+----+------+-------------------+
| 1  |  J   |  2017-10-10 10:10 |
+----+------+-------------------+
| 2  |  I   |  2017-10-10 10:09 |
+----+------+-------------------+
| 3  |  H   |  2017-10-10 10:08 |
+----+------+-------------------+
.
.
.
+----+------+-------------------+
| 10 |  A   |  2017-10-10 10:01 |
+----+------+-------------------+

期望

代码语言:javascript
复制
+----+------+-------------------+
| id | item |      dtime        |
+----+------+-------------------+
| 1  |  A   |  2017-10-10 10:01 |
+----+------+-------------------+
| 2  |  B   |  2017-10-10 10:02 |
+----+------+-------------------+
| 3  |  C   |  2017-10-10 10:03 |
+----+------+-------------------+
.
.
.
+----+------+-------------------+
| 10 |  J   |  2017-10-10 10:10 |
+----+------+-------------------+
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-12 12:39:31

如果我对您的理解是正确的,您所拥有的是一个导入数据表,其中导入是不正确的,无论出于什么原因,您都需要重新导入数据以生成新的标识符。(尽管您的用户输出实际上不应该那么依赖于标识符。听起来好像你在滥用系统标识符。)但是原始数据源已经消失,您需要从您拥有的表中重新导入。

虽然我仍然非常怀疑您可能不需要这样做(特别是如果其他数据已经依赖于已识别的记录),但在技术层面上没有太多。

首先,创建一个与现有表具有相同结构的新表。然后,您可以从现有表中插入一组选定的数据到该新表中。简单的事物,如:

代码语言:javascript
复制
INSERT INTO NewTable (item, dtime)
  SELECT item, dtime FROM OldTable ORDER BY dtime

新表中的AUTOINCREMENT标识符将生成新的id值。然后你就可以放下那张旧桌子。

如果需要,将新表重命名为原始表的名称。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46709593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档