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

标签 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游标来做到这一点?

最佳答案

您可以使用 Row_Number,如下所示:

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

关于mysql - MySQL中使用游标更新表中的id值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45676391/

相关文章:

mysql - 无法创建预期的查询

php - MySQL 搜索表的多列

php - 未设置 LIMIT 时在 PDO/MySQL 中设置默认 LIMIT

php - 如何从我的 WAMP 环境迁移到使用 MSSQL?

MySQL 列标题为单列,第二列为值

php - 一般错误 : could not call class constructor'

sql - 如何获取两个日期之间耗时,忽略某些时间范围?

mysql - 存储过程语法错误

postgresql - postgreSQL中带游标的函数

sql - 将总价格的 SUM 添加到按 ID 分组的每一行