我有一个存储user_id和product_ids的MySQL表,其中product_ids列存储一个JSON数组,数组中包含多个产品ID
| 用户ID|产品ID|
| --------------|--------------|
| 一百零二|[2019 - 05 - 15 00:01:00]|
| 五十四|[2019 - 05 - 15 00:05:00]|
此表包含数千行。我需要一个查询来将product_ids列中存储的所有产品ID增加1127。因此,我想要的输出将如下所示:
| 用户ID|产品ID|
| --------------|--------------|
| 一百零二|[1128,1185,1225,1190,1172,1169,1239,1242]|
| 五十四|[1185,1190,1223,1172,1155,1174,1342]|
我可以写一个脚本,它可以遍历每一行,从JSON列中选择product_ids,手动递增product_ids,然后为当前行更新它,但这将是一个非常耗时的工作。
我想知道这是否可以用一个查询对所有行完成。
注:这对我来说只是一次活动。
1条答案
按热度按时间soat7uwm1#
你真的应该规范化你的数据,并有一个
user_products
表;那么这个任务将是微不足道的。假设你使用的是MySQL 8,你可以用
JSON_TABLE
和JSON_ARRAYAGG
做到这一点:输出:
db-fiddle上的演示