在已排序的表

时间:2016-04-23 15:47:52

标签: mysql sql vb.net

我正在寻找解决问题的方法。

我需要按照该表排序的顺序重新分配id。

这里要更清楚的是表格外观:

| id |名字| new_id |

| 1 | C | 1 |

| 2 | A | 2 |

| 3 | B | 3 |

  

现在我们在ASC模式下按名称对其进行排序:

| id |名字| new_id |

| 2 | A | 2 |

| 3 | B | 3 |

| 1 | C | 1 |

  

现在我们按顺序重新分配id:

| id |名字| new_id |

| 1 | A | 2 |

| 2 | B | 3 |

| 3 | C | 1 |

我使用此代码:

set @row_num = 0; SELECT @row_num := @row_num + 1 as `row_number`,`id`,`name`,`new_id` FROM `test` ORDER BY `name`;

它添加新行row_number并添加数字以便我需要id。怎么做。

1 个答案:

答案 0 :(得分:0)

您可以使用update

执行此操作
set @rn := 0;
update t
    set new_id = (@rn := @rn + 1)
    order by name;

您实际上不需要使用new_id。如果您想重新设置id,请改为设置。