MySQL批量修改数据排序技巧
描述
| id | name | age |
|---|---|---|
| 1 | userA | 10 |
| 2 | userB | 20 |
| 3 | userC | 30 |
| 4 | userD | 10 |
| 5 | userE | 10 |
| 6 | userF | 10 |
当前数据表中有6条数据,需要将id为5的记录移动到第2位,第2位及以后的记录依次往后移。下面是一种比较省事的方案。
操作步骤
第1步
update table_name set id = id + 1000 where id > 1 and id < 6;
| id | name | age |
|---|---|---|
| 1 | userA | 10 |
| 6 | userF | 10 |
| 1002 | userB | 20 |
| 1003 | userC | 30 |
| 1004 | userD | 10 |
| 1005 | userE | 10 |
第2步
update table_name set id = 2 where id = 1005;
| id | name | age |
|---|---|---|
| 1 | userA | 10 |
| 2 | userE | 10 |
| 6 | userF | 10 |
| 1002 | userB | 20 |
| 1003 | userC | 30 |
| 1004 | userD | 10 |
第3步
update table_name set id = id - 999 where id > 1001;
| id | name | age |
|---|---|---|
| 1 | userA | 10 |
| 2 | userE | 10 |
| 3 | userB | 20 |
| 4 | userC | 30 |
| 5 | userD | 10 |
| 6 | userF | 10 |