使用MySQL中的游标更新表中的id值

时间:2017-08-14 14:04:38

标签: mysql sql-server cursors

我有一个名为sample的表格,内容如下,但有100个条目。

+----+----------------+-------------+
| id | title          | status      |
+----+----------------+-------------+
|  0 | Abcd           | active      |
|  0 | Alsd           | active      |
|  0 | Asad           | inactive    |
|  0 | Awer           | active      |
|  0 | Awer           | active      |
+----+----------------+-------------+

我想更新它,并从 101 开始为每个标题指定一个唯一ID。 所以,它看起来像下表 -

+-----+----------------+-------------+
| id  | title          | status      |
+-----+----------------+-------------+
| 101 | Abcd           | active      |
| 102 | Alsd           | active      |
| 103 | Asad           | inactive    |
| 104 | Awer           | active      |
| 105 | Awer           | active      |
+-----+----------------+-------------+

如何使用sql游标进行操作?

1 个答案:

答案 0 :(得分:0)

您可以使用如下的Row_Number:

Update d
    Set Id = Nid
    from ( Select *, Nid = 100 + Row_number() over(order by title) 
            from #data ) d