MySQL5 7中使用JSON(一)

2022-01-22 01:11:39 字數 1261 閱讀 1525

因為專案需要,儲存字段儲存成了json格式,在專案中是將查詢出來的值通過jackson轉成相應的bean進行處理的,覺得不夠簡單方便。

偶然下,知道了mysql5.7原生支援sql,今天一回來就折騰安裝了mysql5.7,所以才出現了上篇安裝綠色版mysql的博文,廢話不多說,研究了1個小時的mysql的json的支援。以下是一些粗淺的心得。

create

table `user

` ( `uid`

int(11) not

null

auto_increment,

`info` json default

null

, #注意desc欄位型別為json

primary

key(`uid`)

) engine

=innodb auto_increment=

3default 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,'

'),(2,'

');

2. 簡單查詢

select uid,json_extract(info,'

$.mail

') as

'mail

',json_extract(info,'

$.name

') as

'name

'from

user;

結果是:

對於某一列是json而言,需要使用內建的函式 json_extract(列名,'$.key') 這個函式有2個引數,第乙個引數是json列的列名,第二個引數$.key 其中key為json字串中某乙個key。

MySQL5 7中新增的JSON型別的使用方法

建立表json test create table json test id int 11 auto increment primary key,person desc json engine innodb 插入一條記錄 insert into json test person desc value...

Mysql5 7中JSON操作函式使用說明

前言 json是一種輕量級的資料交換格式,採用了獨立於語言的文字格式,類似xml,但是比xml簡單,易讀並且易編寫。對機器來說易於解析和生成,並且會減少網路頻寬的傳輸。json的格式非常簡單 名稱 鍵值 之前mysql版本裡面要實現這樣的儲存,要麼用varchar要麼用text大文字。mysql5....

MySQL 5 7的原生JSON資料型別使用

新增測試用表 create table lnmp id int 10 unsigned not null auto increment,category json,tags json,primary key id 新增資料 insert into lnmp category,tags values ...