我想更新JSON数组中现有的JSON值。我可以使用JSON_MODIFY
向JSON数组追加一个新的JSON。假设我有一个JSON,比如:
[{"id":"101","name":"John"}, {"id":"102","name":"peter"}]
但是我只想更新id=102的json。
是否可以使用JSON_MODIFY()
?
编辑:
实际数据
{"Details":{"SId":{"Type":"string","Value":"1234"},"BookList":{"Type":"List","Value":[{"id": "101", "name": "Book1"},{"id": "102", "name": "Book2"}]},"SName":{"Type":"string","Value":"john"}}}
4条答案
按热度按时间mznpcxlj1#
你可以使用
CTE
来解析它,并在UPDATE
部分中合并path:DBFiddle Demo
输出:
这将适用于SQL Server 2017+或SQL Azure DB,否则您将收到错误。More info about path literal
enyaitl32#
更新JSON数据(PostgreSQL)
如果表中的列包含json数据,并且您希望更新此数据,则可以使用以下结构:
注意:通常@>用作“contains”操作符。
w80xi6nr3#
最好的方法是生成如下语句:
Latin1_General_BIN
和SQL_Latin1_General_CP1_CI_AS
之间的排序规则冲突”的错误JSON_MODIFY
must be a string literal”bwntbbo34#
这样做: