如何在没有存储函数的情况下更新 MySQL 行?

Posted

技术标签:

【中文标题】如何在没有存储函数的情况下更新 MySQL 行?【英文标题】:How to update rows of MySQL without stored function? 【发布时间】:2014-09-05 03:30:59 【问题描述】:

我的云服务器不允许存储函数/过程,怎么办?

我的桌子是:

|id |状态| | 1 |不错| | 2 |坏| | 3 |不错| | 4 |不错|

我希望它是:

| 1 |不错| | 3 |坏| | 4 |不错| | 5 |不错|

这可以用一行语句完成吗?基本上我想将 id>x 的行中的所有 id 更改为 id+1。在这种情况下,x = 2。

更新

忘了说 id 是唯一的,那么如何对它们进行排序然后更改?

【问题讨论】:

UPDATE tableName SET id = id + 1 WHERE id > 1? 【参考方案1】:

你可以使用

UPDATE yourtable SET id = id + 1 WHERE id > 1 ORDER BY ID DESC;

如果 id 是唯一的,您将面临一个已知的“错误”或“功能”,但按 desc 排序将帮助您避免它。

【讨论】:

【参考方案2】:

试试这个

UPDATE `table` SET id = id + 1 WHERE id > 1

【讨论】:

以上是关于如何在没有存储函数的情况下更新 MySQL 行?的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有超时的情况下锁定 Ibm Db2 中的更新行?

如何创建 MySQL 存储聚合函数?

mysql中怎么存储数组

mysql 如何更新数组中的值

mysql存储过程出现锁表锁行的情况怎么解决

如何在 mysql 中存储 gps 坐标,然后在没有时间延迟的情况下检索它?