3

次のような JSON データを含むテキスト フィールドがあるとします。

{
    "id": {
        "name": "value",
        "votes": 0
    }
}

id値を見つけてインクリメントするクエリを作成する方法はありvotesますか?

必要なJSONデータの更新を取得して、更新されたバージョンを再挿入するだけでよいことはわかっていますが、2つのクエリを実行せずにこれを行う方法はありますか?

4

2 に答える 2

0

このようなタスクでは、単純な古いものSELECTに続いてUPDATE(JSON を解析した後、必要な値をインクリメントしてから、JSON をシリアル化して戻す) を使用することに行き詰まっていると思います。

これらの操作を単一のトランザクションでラップする必要があります。InnoDB を使用している場合は、次の使用も検討してSELECT ... FOR UPDATEください: http://dev.mysql.com/doc/refman/5.0/en/innodb-locking-reads.html

これはちょっとした接線ですが、これは MongoDB のような NoSQL データベースが非常に得意とするタイプの操作であることにも言及したいと思います。

于 2013-08-15T15:16:03.967 に答える