Ree*_*eed 6 mysql json mysql-json
我正在探索更新的mysql服务器的JSON功能.但遇到一个非常基本的问题.
当我不知道当前值是否为NULL时,如何将{"key":"value"}插入JSON列?
该表仅供参考:
CREATE TABLE `testjson` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`extra` JSON NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
Run Code Online (Sandbox Code Playgroud)
使用NULL和有效的json值测试数据.
| id | extra |
| -: | - |
| 1 | (NULL) |
| 2 | {"name": "james"} |
Run Code Online (Sandbox Code Playgroud)
期望的结果:
| id | extra |
| -: | - |
| 1 | {"age": 87} |
| 2 | {"age": 87, "name": "james"} |
Run Code Online (Sandbox Code Playgroud)
现在,我尝试将{"age":87}添加到所有行中:
UPDATE testjson
SET extra = JSON_SET(extra,'$.age', 87)
;
UPDATE testjson
SET extra = JSON_MERGE(extra,JSON_OBJECT('age', 87)),
;
Run Code Online (Sandbox Code Playgroud)
以上都不更新NULL字段.试图将列默认设置为{},但不允许.
因为NULL不是有效的JSON数据,所以mysql JSON函数都不起作用:https: //dev.mysql.com/doc/refman/5.7/en/json-function-reference.html
我目前的工作是{}在插入之前设置NULL ,但它是愚蠢的.简单更新不应使用两个查询.
你们是怎么处理这个的?
| 归档时间: |
|
| 查看次数: |
3886 次 |
| 最近记录: |