我需要将表 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
我收到以下错误:
操作必须使用可更新的查询
答案 0 :(得分:1)
由于您知道MAX()+ 1技术通常是Bad Idea™,因此在您的特定情况下,您应该能够使用DMax()域聚合函数。我不是100%清楚你想要完成什么,但似乎你想要这样的东西:
UPDATE myTable SET myField = DMax("myField", "myTable") + 1
WHERE myField = 121 and foriegnKey = 124