首页 > 解决方案 > mysql更新json属性和一个查询中的另一列

问题描述

我需要更新列中的 json 值以及更新同一查询中的另一列。

像这样的东西:

UPDATE fixtures 
SET jsonResults = '{}', 
    JSON_SET(jsonFixture, '$.time_status', '0') 
WHERE intRefID = 88961323;

我怎样才能做到这一点?

标签: mysqlmysql-workbenchmysql-json

解决方案


JSON_SET()返回 JSON 文档值,但 UPDATE 语句需要一系列赋值表达式:

UPDATE fixtures 
SET jsonResults = '{}', 
    jsonFixture = JSON_SET(jsonFixture, '$.time_status', '0') 
WHERE intRefID = 88961323;

在该文档中设置一个字段后,这将替换jsonFixture为 , 的结果。JSON_SET()

与这样的 UPDATE 进行比较:

UPDATE mytable
SET i = i + 1
WHERE ...

它取 的值i,加 1,然后使用该加法表达式的结果来替换i


推荐阅读