
insert into users values(2,'{"name":"lisi","age":20,"sex":1}');
使用函数插入,常用的有 JSON_ARRAY() 和 JSON_OBJECT(),前者用于构造 JSON 数
组,后者用于构造 JSON 对象。
mysql> select json_array(1, "张三", null, true,now());
+---------------------------------------------------------+
| json_array(1, "张三", null, true,now()) |
+---------------------------------------------------------+
| [1, "张三", null, true, "2023-09-26 16:09:21.000000"] |
+---------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select json_object('id', 1, 'name', '张三');
+----------------------------------------+
| json_object('id', 1, 'name', '张三') |
+----------------------------------------+
| {"id": 1, "name": "张三"} |
+----------------------------------------+
1 row in set (0.00 sec)
对于 JSON 文档,KEY 名不能重复。
如果插入的值中存在重复 KEY,遵循的是 last duplicate key wins 原则,只会保留最后一个
KEY。
mysql> select json_object('id',1,'age',20,'id',2);
+-------------------------------------+
| json_object('id',1,'age',20,'id',2) |
+-------------------------------------+
| {"id": 2, "age": 20} |
+-------------------------------------+
1 row in set (0.00 sec)
查看数据
使用 column->path 和 column->>path 查看
--返回的数据包含""
mysql> select info->"$.name" from users;
+----------------+
| info->"$.name" |
+----------------+
| "zhangsan" |
| "lisi" |
+----------------+
2 rows in set (0.00 sec)
--返回的数据不包含""
mysql> select info->>"$.name" from users;
+-----------------+
评论