我正在尝试使用 Spring 的 NamedParameterJdbcTemplate
(MySQL 5.7.12) 对 JSON 列执行更新子句,如下所示:
MapSqlParameterSource params = new MapSqlParameterSource()
.addValue("id", id)
.addValue("key", key)
.addValue("value", value);
jdbcTemplate.update("UPDATE test_table SET data = JSON_SET(IFNULL(data, \"{}\"), \"$.:key\", :value) WHERE id=:id", params);
我收到关于“$”的语法错误。
在尝试使用 String.format
构建查询后,我能够确定错误是由 $.:key
引起的,对此有任何好的解决方案,因此我不需要使用 String.format 嵌入变量?
谢谢!