我需要倒转整个表的id从头部最变成一个尾巴。例如。我在一张桌子上有10排。我需要在日期前把第10到第1次和第1次到第10次订单。此外,结构和数据仍然存在。
我不知道怎么问这样的问题。很抱歉那些我的问题看起来很愚蠢或试图-在你看来更少。
表
+----+------+-------------------+
| 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 |
+----+------+-------------------+期望
+----+------+-------------------+
| 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 |
+----+------+-------------------+发布于 2017-10-12 12:39:31
如果我对您的理解是正确的,您所拥有的是一个导入数据表,其中导入是不正确的,无论出于什么原因,您都需要重新导入数据以生成新的标识符。(尽管您的用户输出实际上不应该那么依赖于标识符。听起来好像你在滥用系统标识符。)但是原始数据源已经消失,您需要从您拥有的表中重新导入。
虽然我仍然非常怀疑您可能不需要这样做(特别是如果其他数据已经依赖于已识别的记录),但在技术层面上没有太多。
首先,创建一个与现有表具有相同结构的新表。然后,您可以从现有表中插入一组选定的数据到该新表中。简单的事物,如:
INSERT INTO NewTable (item, dtime)
SELECT item, dtime FROM OldTable ORDER BY dtime新表中的AUTOINCREMENT标识符将生成新的id值。然后你就可以放下那张旧桌子。
如果需要,将新表重命名为原始表的名称。
https://stackoverflow.com/questions/46709593
复制相似问题