MySQL 5.7 - увеличение числа в JSON - PullRequest
0 голосов
/ 26 июня 2018

Возможно ли массовое увеличение определенного атрибута JSON?

Например, мой столбец JSON называется metadata и выглядит так:

{"counter": 0, ...}

Могу ли я обновить несколько строк, чтобы счетчик увеличивался на 1 с помощью одного запроса?

Edit:

Поскольку это помечается как слишком широкий, позвольте мне привести точный пример.

Данные в таблице x, единственный столбец в ней - metadata и имеет 3 строки:

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

Желаемый результат - это один запрос, который обновит эти 3 до следующего:

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

Само собой разумеется, что я не эксперт по MySQL, и мне не удалось собрать запрос, который бы работал для меня из документации MySQL. Помощь будет оценена.

1 Ответ

0 голосов
/ 27 июня 2018

Вы можете использовать JSON_EXTRACT вместе с JSON_SET:

UPDATE table SET col = JSON_SET(col, '$.counter', JSON_EXTRACT(col, '$.counter') + 1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...