1

私のテーブルには、ネストされたオブジェクトを持つ JSON 文字列を含む列があります(したがって、単純な REPLACE 関数ではこの問題を解決できません)。たとえば、次のようになります{'name':'bob', 'blob': {'foo':'bar'}, 'age': 12}。JSON 文字列の末尾に値を追加する最も簡単なクエリは何ですか? したがって、この例では、最終結果を次のようにしたいと考えています{'name':'bob', 'blob': {'foo':'bar'}, 'age': 12, 'gender': 'male'}。ソリューションは、任意の JSON 値に対して機能するのに十分な汎用性を持つ必要があります。

4

3 に答える 3

0

REPLACE関数を使用してこれを達成できると思います

UPDATE table
SET column = REPLACE(column, '{\'name\':\'bob\', \'blob\': {\'foo\':\'bar\'}, \'age\': 12}', '{\'name\':\'bob\', \'blob\': {\'foo\':\'bar\'}, \'age\': 12, \'gender\': \'male\'}')

json 内のすべての引用符を適切にエスケープするように注意してください

ネストされたjsonのリクエストに応じて、SUBSTRING関数を使用して文字列の最後の文字を削除し、必要なものを追加できると思いますCONCAT

UPDATE table
SET column = CONCAT(SUBSTRING(column, 0, -1), 'newjsontoappend')
于 2013-06-14T00:02:54.040 に答える