2016-03-29 8 views
0

フィールドを更新する必要があります。テーブルmyTableのレコードで、同じフィールドの最大値+1に更新してください。フィールド+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 

私は、次のエラーを得た:あなたはMAX()+ 1つの技術は、あなたがしなければならないあなたの特定のケースでは、通常は悪いアイデア™であることを認識しているので

操作は、更新可能なクエリ

+1

今まで私が知っているこの – Strawberry

+1

@Strawberryを行うために必要とするためにほとんどない正当な理由がありますが。私は壊れたデータベースを修正しているので、私は選択肢がありません。 – MJH

答えて

1

を使用する必要があります。 DMax()ドメイン集約関数を使用できるようにします。私はあなたが達成しようとしているのかについては100%明確でないんだけど、あなたがこのような何かしたいようだ:

UPDATE myTable SET myField = DMax("myField", "myTable") + 1 
WHERE myField = 121 and foriegnKey = 124 
関連する問題