MySQL 5.7-用JSON递增数字

时间:2018-06-26 20:57:29

标签: mysql sql

是否可以批量增加特定的JSON属性?

例如,我的JSON列称为metadata,如下所示:

{"counter": 0, ...}

我是否可以更新多行,以便单个查询使计数器增加1?

编辑:

由于这被标记为过于广泛,所以让我举一个确切的例子。

x上的数据,表上唯一的列是metadata,它具有3行:

{"counter": 0}{"counter": 1}{"counter": 0, "something": "somethign"}

所需结果是一个查询,该查询会将这3个查询更新为

{"counter": 1}{"counter": 2}{"counter": 1, "something": "somethign"}

不用说,我不是MySQL的专家,而且我也没有设法从MySQL文档中找到对我有用的查询。帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以将JSON_EXTRACTJSON_SET一起使用:

UPDATE table SET col = JSON_SET(col, '$.counter', JSON_EXTRACT(col, '$.counter') + 1)