MySQL JSON測試
如同一般資料表般,只需要將資料類型指定為"json"即可
CREATE TABLE `j_t` (
`no` int(11) NOT NULL AUTO_INCREMENT,
`document` json DEFAULT NULL,
PRIMARY KEY (`no`)
) ENGINE=InnoDB;
2. 新增資料
insert into j_t values(0,'{"id":221, "name":"Joe Yu"}');
insert into j_t values(0,'{"id":8891, "name":"Janne", "mobile":"00-1110-2222", "Address": "Taiwan, Taipei"}');
3. 其他操作
.一般查詢
.jsn_insert():針對條件新增資料
.jsn_remove():移除某個欄位
.jsn_replace():只會對符合條件的資料進行更新
.jsn_append():將資料附加到array的後面
.jsn_merge():可以把幾個陣列資料透過jsn_array()合在一起後放入一個陣列中
.透過json中的欄位建index
.jsn_length():json欄位的長度
.jsn_depth():json欄位的深度,單純key-value深度即是2,若還有陣列在value裡深度就會是3
.jsn_keys():意即該json欄位中有多個key
.jsn_contains_path():查詢元素存在於哪些資料路徑當中,在下圖的範例中我查詢"mobile" 這個key僅存在於第1、4筆當中
.jsn_contains():用來找尋JSON內容的函數,雖然也可以透過jsn_extract來找尋,但jsn_extract無法針對array或內嵌文件來進行搜尋,反之jsn_contains則可以,參考以下範例
.jsn_search():用來查詢該值存在於陣例中的哪個位置,但缺點是,若是內嵌文件的陣列,它似乎無法搜尋均回復[0],另外它也可以像一般SQL語法一樣使用%,例如select jsn_search(document,'one','%ing')from j_t;
.jsn_type():用以確認該欄位的類型
資料參考:
http://mysqlserverteam.com/json-labs-release-native-json-data-type-and-binary-format/
http://mysqlserverteam.com/json-labs-release-json-functions-part-1-manipulation-json-data/
留言
張貼留言