mysql中,通过json_insert函数向json字段插入键值?json_insert函数的使用?

需求描述:

  通过json_insert向json字段中插入值,在此进行实验,记录下.

操作过程:

1.查看已经有的包含json数据类型的表

mysql> select * from tab_json;
+----+------------------------------------------------------------------------------------------------+
| id | data                                                                                           |
+----+------------------------------------------------------------------------------------------------+
|  1 | {"age": "33", "tel": 13249872314, "name": "Mike", "address": "Shenzhen", "passcode": "654567"} |
|  2 | {"age": "33", "tel": 189776542, "name": "David", "olds": "12", "address": "Hangzhou"}          |
+----+------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

2.通过json_insert来插入值

mysql> update tab_json set data = json_insert(data,"$.age","22") where id = 1;  #对一个已经存在的key进行操作,值没有变化
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1  Changed: 0  Warnings: 0

mysql> select * from tab_json;
+----+------------------------------------------------------------------------------------------------+
| id | data                                                                                           |
+----+------------------------------------------------------------------------------------------------+
|  1 | {"age": "33", "tel": 13249872314, "name": "Mike", "address": "Shenzhen", "passcode": "654567"} |
|  2 | {"age": "33", "tel": 189776542, "name": "David", "olds": "12", "address": "Hangzhou"}          |
+----+------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

mysql> update tab_json set data = json_insert(data,"$.CARD","1989833333") where id = 1;  #对不存在的key进行操作,结果是增加了key-value值
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from tab_json;
+----+----------------------------------------------------------------------------------------------------------------------+
| id | data                                                                                                                 |
+----+----------------------------------------------------------------------------------------------------------------------+
|  1 | {"age": "33", "tel": 13249872314, "CARD": "1989833333", "name": "Mike", "address": "Shenzhen", "passcode": "654567"} |
|  2 | {"age": "33", "tel": 189776542, "name": "David", "olds": "12", "address": "Hangzhou"}                                |
+----+----------------------------------------------------------------------------------------------------------------------+
2 rows in set (0.00 sec)

备注:所以json_insert函数的作用就是插入,插入不存在的键值对,如果对于一个已经存在的key进行操作是没有变化的

文档创建时间:2018年6月5日22:06:43

原文地址:https://www.cnblogs.com/chuanzhang053/p/9142212.html

时间: 2024-10-05 00:50:20

mysql中,通过json_insert函数向json字段插入键值?json_insert函数的使用?的相关文章

mysql数据库中,如何对json数据类型的值进行修改?通过json_set函数对json字段值进行修改?

需求描述: 今天在看mysql中存放json数据类型的问题,对于json数据进行修改的操作, 在此记录下. 操作过程: 1.创建包含json数据类型的表,插入基础数据 mysql> create table tab_json(id int not null auto_increment primary key,data json); Query OK, 0 rows affected (0.03 sec) mysql> insert into tab_json values (null,'{&

C#中的函数(二) 有参有返回值的函数

接上一篇 C#中的函数(-) 无参无返回值的函数 http://www.cnblogs.com/fzxiaoyi/p/8502613.html 这次研究下C#中的函数(二) 有参有返回值的函数 依然写一个小例子,用来测试 跟上一个例子差不多,区别就是MyFunction有二个参数a,b,返回二个数相加的值 F5调试运行,中断后转到反汇编 这里很明显看到不同了 这里就得讲到参数传递的方式,参数从左向右依次存入寄存器ecx edx 但是不同的编程语言有不同的传递参数的方式,有空再写一篇文章介绍下 要

数组的键/值操作函数

PH在P中,数组的每个元素都是由键/值组成的,通过元素的键来访问对应的键的值.“关联数组”指的是键名为字符串的数组,“索引”和“键名”指的是同一样东西.“索引”多指数组的数字形式的下标.使用数组的处理函数,可以很方便地对数组中的每个元素的键和值进行操作,进而生成一个新数组. ①函数array_values() array_values()函数的作用是返回数组中所有元素的值.使用非常容易,只有一个必选参数,规定传入给定的数组,返回一个包含给定数组中所有值得数组.但不保留键名,被返回的数组将使用顺序

jQuery元素属性attr设置多个键值或函数

Js代码   $("Element").attr(name) '取得第一个匹配的属性值,比如$("img").attr("src") $("Element".attr(key,value)") '某一个元素设置属性 $("Element".attr({key:value,key1:value,....})) ‘为某个元素一次性设置多个属性 $("Element").attr(k

MySQL中order by语句对null字段的排序

默认情况下,MySQL将null算作最小值. 如果想要手动指定null的顺序,可以使用: 将null强制放在最前: if(isnull(字段名),0,1) asc   //asc可以省略 将null强制放在最后 if(isnull(字段名),0,1) dsc if(isnull(字段名),1,0)  asc   //asc可以省略 对于这种使用方式的理解: 以if(isnull(字段名),0,1)为例,它的意思是将该字段根据是否为null值分成两部分,值为null行相当于得到了一个隐含的排序属性

MySQL 中如何在触发器里中断记录的插入或更新?

MySQL 不象其它有些数据库可以在触发器中抛出异常来中断当然触发器的执行以阻止相应的SQL语句的执行.在MySQL的目录版本中还无法直接抛出异常.这样我们如何实现呢? 下面是一种实现的方法.思路就是想办法在触发器中利用一个出错的语句来中断代码的执行. mysql> create table t_control(id int primary key);Query OK, 0 rows affected (0.11 sec) mysql> insert into t_control values

MySql中测试GUID 与Int自增主键 性能对比 总结适用场景【转】

一. 创建以下三个数据表: int 主键自增表, guid主键表, 关联以上两个表的关系表tbl_test_relation CREATE TABLE `tbl_test_int` (    `id` INT(11) NOT NULL AUTO_INCREMENT,    `name` VARCHAR(50) NULL DEFAULT NULL,    `comment` VARCHAR(100) NULL DEFAULT NULL,    PRIMARY KEY (`id`))COMMENT=

cookie写入存储与读取键值对函数

function setCookie(name, value, expires, path, domain, secure){ var cookieName = encodeURIComponent(name) + '=' + encodeURIComponent(value); if(expires instanceof Date){ cookieName += '; expires=' + expires; } if(path){ cookieName += '; path=' + path

mysql中key 、primary key 、unique key 与index区别

一.key与primary key区别 CREATE TABLE wh_logrecord ( logrecord_id int(11) NOT NULL auto_increment, user_name varchar(100) default NULL, operation_time datetime default NULL, logrecord_operation varchar(100) default NULL, PRIMARY KEY (logrecord_id), KEY wh