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

2022-09-25 17:54:07 字數 2526 閱讀 3616

前言

json是一種輕量級的資料交換格式,採用了獨立於語言的文字格式,類似xml,但是比xml簡單,易讀並且易編寫。對機器來說易於解析和生成,並且會減少網路頻寬的傳輸。

json的格式非常簡單: 名稱/鍵值 。之前mysql版本裡面要實現這樣的儲存,要麼用varchar要麼用text大文字。 mysql5.7發布後,專門設計了jwww.cppcns.comson資料型別以及關於這種型別的檢索以及其他函式解析。

下面一起來實際操作一下。

建立帶有 json 欄位的表

比如乙個『文章'表,字段包括

id、標題 title、標籤 tags

一篇文章會有多個標籤,tags 就可以設為 json 型別

建表語句如下:

create table article` (

id` mediumint(8) unsigned not null auto_increment,

title` varchar (200) not null ,

tags` json default null ,

primary key (`id`)

) engine=innodb;

插入資料程式設計客棧

插入一條帶有 json 內容的資料,執行 insert 語句:

i into article` (`title`, `tags`)

values (

'體驗 mysql json' ,

'["mysql", "database"]'

);這裡插入的是乙個 josn 陣列 [「mysql」, 「database」]

查詢 article 表中的所有內容,可以看到新插入的這條資料

查詢使用 json 函式做兩個簡單的查詢

1.查詢帶有標籤」mysql」的所有文章

select * from article`

where json_contains(tags, '["mysql"]' );

2.查詢標籤中以」data」開頭的文章

select * from article`

where json_search(tags, 'one' , 'data%' ) is not null ;

json_search 函式中3個引數的含義:

1.要查詢的文件

2.查詢的範圍,有兩個選項,'one' 查詢第乙個符合條件的,'all'查詢所有符合條件的

3.查詢的條件

json path

json path用來定位文件中的目標字段,例如

select json_extract(

'' ,

'$.name'

);結果為:mysql

json_extract() 是json提取函式, $.name 就是乙個 json path ,表示定位文件的 name 字段

json path 是以 $ 開頭,下面看幾個更多的示例

}$.num //結果:123

$.arr //結果:[1, 2]

$.arr[1] //結果:1

$.obj.a //結果:3

$**.b //結果:4

使用 json path 的查詢示例

select

tags-> "$[0]" as 'tag'

from article`;

更新資料

例如想給文章新增乙個 「dev」 tag,更新的條件是已經包含 「mysql」 標籤,並且還沒有 「dev」 標籤的資料

更新語句如下:

update article`

set tags = json_merge(tags, '["dev"]' )

where

json_search(tags, 'one' , 'dev' ) is null

andjson_search(tags, 'one' , 'mysql' ) is not null ;

可以看到成功新增了 「dev」 標籤

再比如想把 「mysql」 這個標籤更新為 「mysql 5.7.13″,更新語句如下:

updfncioqrzeqate article` set tags = json_set(tags, 『$[0] ', 『mysql 5.7.13' ) ;

上面體驗了 json_merge 和 json_set ,fncioqrzeq用於修改json的函式還有很多,例如:

json_insert(doc, path, val[, path, val]…)

插入資料

json_replace(doc, path, val[, path, val]…)

替換資料

json_array_append(doc, path, val[, path, val]…)

向陣列尾部追加資料

json_remove(doc, path[, path]…)

從指定位置移除資料

通過初步的操作體驗,感覺 mysql 的 json 操作還是比較順暢的,以後可以在mysql中使用文件結構確實很方便

本文標題: mysql5.7中json操作函式使用說明

本文位址:

MySQL5 7中使用JSON(一)

因為專案需要,儲存字段儲存成了json格式,在專案中是將查詢出來的值通過jackson轉成相應的bean進行處理的,覺得不夠簡單方便。偶然下,知道了mysql5.7原生支援sql,今天一回來就折騰安裝了mysql5.7,所以才出現了上篇安裝綠色版mysql的博文,廢話不多說,研究了1個小時的mysq...

mysql5 7學習 mysql 5 7 學習

mysql uroot proot mysql5.7 mysql.user表沒有password欄位改 authentication string 一.建立使用者 命令 create user username host identified by password 例子 create user d...

mysql5 7安裝及操作

1.mysql 5.7的安裝 sudo pip install mysql server 2.注意我安裝mysql 5.7是沒有提示輸入賬號密碼的 具體什麼原因菜雞也不懂 解決方法 找到 etc mysql debian.cnf 檔案下的賬號密碼進行登入 mysql u username p pas...