模板网站优化,网站建设制作网络营销公司,注册页面,青田县建设局网站UPDATE表名
SET字段名  CASE WHENJSON_EXTRACT(字段名,$.字段里的对象名.对象内部字段名) IS NOT NULLTHENJSON_SET (字段名,$.字段里的对象.对象内部字段,更新后的值)ELSEJSON_INSERT (字段名,$.字段里的对象名,JSON_OBJECT(对象内部字段名 CASE WHENJSON_EXTRACT(字段名,$.字段里的对象名.对象内部字段名) IS NOT NULLTHENJSON_SET (字段名,$.字段里的对象.对象内部字段,更新后的值)ELSEJSON_INSERT (字段名,$.字段里的对象名,JSON_OBJECT(对象内部字段名,更新后的值))END;
WHERE具体条件 
以上SQL用于更新JSON结构数据内部的对象不存在则插入非对象的键值、对象多层嵌套同理业务复杂时建议使用java代码转换为JSONObject处理。 
例如存在 bill 账单表定义了 text 类型的字段 bill_extension 以存储JSON数据有一条数据为 {customerCode: a, commodity: {price: 10,num:1}} 把 commodity 对象里的 price 改为20。 
UPDATEbill
SETbill_extension  CASE WHENJSON_EXTRACT(bill_extension,$.commodity.price) IS NOT NULLTHENJSON_SET (bill_extension,$.commodity.price,20)ELSEJSON_INSERT (bill_extension,$.commodity,JSON_OBJECT(price,20))END
WHEREid  1; 
注意点 
1.请根据具体业务情况替换代码的中文注释并确认存储数据符合JSON格式。 
2.MySQL5.7以下版本不支持JSON相关函数。 
3.更新后JSON数据会按照一定规则重新排序暂不了解具体细节有知道的朋友欢迎指点。 
4.JSON相关函数介绍推荐以下博客 
【MySQL】对JSON数据操作全网最全_mysql json_0世界和平0的博客-CSDN博客