我是靠谱客的博主 沉静蓝天,这篇文章主要介绍mysql5.7支持json类型吗_mysql 5.7 支持json格式,现在分享给大家,希望可以做个参考。

1、JSON格式的支持:

mysql> create table user ( uid int auto_increment,

-> data json,primary key(uid))engine=innodb;

Query OK, 0 rows affected (0.01 sec)

mysql> insert into user values (NULL,

-> '{"name":"David","mail":"greenforestquan@163.com","address":"Shangahai"}');

Query OK, 1 row affected (0.00 sec)

mysql> insert into user values (NULL,'{"name":"Amy","mail":"amy@gmail.com"}');

Query OK, 1 row affected (0.00 sec)

【上面创建了data字段使用了【json】类型,此时data在插入数据时,其格式必须严格遵守json格式 即{"键1":"值1","键2":"值2"}】

2、查询json格式的字段

mysql> select jsn_extract(data, '$.name'),jsn_extract(data,'$.address') from user;

+-----------------------------+-------------------------------+

| jsn_extract(data, '$.name') | jsn_extract(data,'$.address') |

+-----------------------------+-------------------------------+

| "David" | "Shangahai" |

| "Amy" | NULL |

+-----------------------------+-------------------------------+

2 rows in set (0.00 sec)

3、给json格式的某个键字段创建索引。首先创建虚拟列,之后在改虚拟列上创建索引。

mysql> ALTER TABLE user ADD user_name varchar(128)

-> GENERATED ALWAYS AS (jsn_extract(data,'$.name')) VIRTUAL;

Query OK, 0 rows affected (0.01 sec)

Records: 0 Duplicates: 0 Warnings: 0

mysql> select user_name from user;

+-----------+

| user_name |

+-----------+

| "Amy"     |

| "David"   |

+-----------+

2 rows in set (0.00 sec)

mysql> alter table user add index idx_username (user_name);

Query OK, 2 rows affected (0.01 sec)

Records: 2  Duplicates: 0  Warnings: 0

4、之后通过虚拟列名对json特定列进行索引查询:

mysql> explain select * from user where user_name='"Amy"'G

*************************** 1. row ***************************

id: 1

select_type: SIMPLE

table: user

partitions: NULL

type: ref

possible_keys: idx_username

key: idx_username

key_len: 131

ref: const

rows: 1

filtered: 100.00

Extra: NULL

1 row in set, 1 warning (0.00 sec)

最后

以上就是沉静蓝天最近收集整理的关于mysql5.7支持json类型吗_mysql 5.7 支持json格式的全部内容,更多相关mysql5.7支持json类型吗_mysql内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(71)

评论列表共有 0 条评论

立即
投稿
返回
顶部