虽然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认为你不是在操作对象元素,所以报语法错误,有兄弟知道的话,麻烦留言发表一下见解。
网友评论