MySQL5.7中使用JSON

一、简介

因为项目需要,存储字段存储成了JSON格式,MySQL5.7开始就原生支持JSON了。

二、创建表

CREATE TABLE user (
  uid int(11) NOT NULL AUTO_INCREMENT,
  info json DEFAULT NULL, #注意desc字段类型为json
  PRIMARY KEY (uid)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;

在MySQL5.7后,多了一个字段类型:json

原生的JSON优势如下:

1.存储上类似text,可以丰非常大的数据。

2.JSON有效性检查:插入的数据必须是JSON类型的字符串才行。

3.相比于传统形式,不需要遍历所有字符串才能找到数据。

4.支持索引:通过虚拟列的功能可以对JSON中部分的数据进行索引。

三、使用

1.插入SQL语句,注意info字段必须要是json类型,否则插入失败

INSERT  INTO user(uid,info) VALUES (1,'{\"mail\": \"jiangchengyao@gmail.com\", \"name\": \"David\", \"address\": \"Shangahai\"}'),(2,'{\"mail\": \"amy@gmail.com\", \"name\": \"Amy\"}');

2.简单查询

SELECT uid,json_extract(info,'$.mail') AS 'mail',json_extract(info,'$.name') AS 'name' FROM USER;

结果是:

MySQL5.7中使用JSON

四、说明

对于某一列是json而言,需要使用内置的函数json_extract(列名, ‘$.key’)这个函数有2个参数,第一个参数是json列的列名,第二个参数$.key其中key为json字符串中某一个key。

Original: https://www.cnblogs.com/mayi0312/p/13649698.html
Author: 骑着螞蟻流浪
Title: MySQL5.7中使用JSON

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/602058/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球