【发布时间】:2016-03-30 01:47:10
【问题描述】:
我需要将表 myTable 中记录中的字段 myField 更新为同一字段的最大值 +1。
我尝试了以下查询:
UPDATE myTable
SET myField = max(myField)+1
WHERE myField = 121 and foriegnKey = 124
但是我得到了以下错误:
查询不包含指定表达式“myField”作为聚合函数的一部分
我在 MySQL 中找到了这个问题的答案,但它对我不起作用:
UPDATE myTable set field =
((SELECT maxField
FROM
(SELECT MAX(myField) AS maxField
FROM myTable) AS q) + 1)
WHERE myField = 121 and foriegnKey = 124
我收到以下错误:
操作必须使用可更新的查询
【问题讨论】:
-
几乎没有充分的理由需要这样做
-
@Strawberry,我知道。我正在修复损坏的数据库,所以我别无选择。