Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何将一行的值设置为前一行?_Mysql_Sql - Fatal编程技术网

Mysql 如何将一行的值设置为前一行?

Mysql 如何将一行的值设置为前一行?,mysql,sql,Mysql,Sql,我有一张这样的桌子: // numbers +----+--------+ | id | numb | +----+--------+ | 1 | zero | | 2 | one | | 3 | two | | 4 | three | | 5 | four | | 6 | five | | 7 | six | | 8 | seven | | 9 | eight | | 0 | nine | +----+--------+ 现在

我有一张这样的桌子:

// numbers 
+----+--------+
| id |  numb  |
+----+--------+
| 1  | zero   |
| 2  | one    |
| 3  | two    |
| 4  | three  |
| 5  | four   |
| 6  | five   |
| 7  | six    |
| 8  | seven  |
| 9  | eight  |
| 0  | nine   |
+----+--------+
现在我正试图将每一行的值(只是
numb
column)复制/粘贴到上一列。所以这是预期的结果:

+----+--------+
| id |  numb  |
+----+--------+
| 1  | one    |
| 2  | two    |
| 3  | three  |
| 4  | four   |
| 5  | five   |
| 6  | six    |
| 7  | seven  |
| 8  | eight  |
| 9  | nine   |
| 0  | zero   |
+----+--------+
事实上,我可以通过PHP实现这一点。我的意思是我可以获取所有行并移动一个itam,然后更新它们。但是我想知道,我能用纯mysql做到这一点吗?

也许类似于

并将id+1用于表2。

可能类似于


并将id+1用于表2。

除最大id外的所有行都将更新。max id仍将具有相同的numb。(在这种情况下,
9,'eight'


除id的最大值之外的所有行都将更新。max id仍将具有相同的numb。(在这种情况下,
9,'eight'


0
应位于顶部,最后一个值是多少<代码>id和
9
?@lolka\u bolka什么?其中
id=9
值应为
nine
。在索引中,第一个值是一个问题,放在最后一个值或使用负id,因此需要创建而不是更新。请参阅@GiorgosBetsos注释。
0
应位于顶部,最后一个值是什么<代码>id和
9
?@lolka\u bolka什么?其中
id=9
值应为
nine
。在索引中,第一个值是一个问题,放在最后或使用负id,因此需要创建而不是更新。请参阅@GiorgosBetsos注释。
update tablename t1
JOIN tablename t2 on t1.id = t2.id-1
set t1.numb = t2.numb;