mysql的JOSN_SET对json键为数字更新报错

虽然MYSQL 5.7发布挺长时间了,但是直到今天才有机会用上JSON数据类型,表中的数据是这样的

{"201910":{"pv":12,"uv":12},"201909":{"pv":12,"uv":12}}

于是更新的时候用JSON_SET

JSON_SET(`month`, '$.201910.pv', 10)

报错

3143 - Invalid JSON path expression. The error is around character position 8.

查了文档发现语法并没有什么问题,后来是试了一下对象键首位为非数字的情况,更新就可以了,于是发现问题所在了
改成一下

JSON_SET(`month`, '$."201910".pv', 10)

原因我猜测是json对象是无序的,但是数字键会让mysql认为你不是在操作对象元素,所以报语法错误,有兄弟知道的话,麻烦留言发表一下见解。

你可能感兴趣的:(mysql的JOSN_SET对json键为数字更新报错)