select version()
-- 5.7.43-log
1.數(shù)據(jù)準(zhǔn)備
create table tmp_eg as
select *
from
(select 'John' as name,30 as age,'chongqing' as city
union all
select 'Tomi' as name,27 as age,'nanchang' as city
union all
select 'nuna' as name,29 as age,'hunan' as city
) t1
;
image.png
2.json_object()
接受一個鍵值對(可以為空)列表一膨,并返回一個包含這些鍵值對的JSON對象 如果參數(shù)數(shù)量為奇數(shù)最蕾,則會發(fā)生報錯image.png
3.json_array()
接受一個值列表(可能為null),并返回一個包含這些值的json數(shù)組image.png
4.json_type(json_val)
獲取json類型 返回 json 值的類型甚带。 如果參數(shù)不是有效的json值扣草,則會出現(xiàn)錯誤image.png
5.json_length()
如果是數(shù)組,其長度為數(shù)組元素的個數(shù),如果是對象氨鹏,其長度為對象元素的個數(shù)image.png
6.json_extract()
函數(shù)可以用于提取json對象或數(shù)組中的特定部分欧募。
提取json對象
提取json數(shù)組
7.json_unquote(json_val)
將json 轉(zhuǎn)義成字符串輸出。常用于使用json_extract()和->函數(shù)解析完之后仆抵,去除引號image.png
8.json_quote(string)
生成有效的 json 字符串跟继,主要是對一些特殊字符(如雙引號)進(jìn)行轉(zhuǎn)義
9.json_keys()
獲取keys 返回 json 文檔最外層的 key种冬,如果指定了 path,則返回該 path 對應(yīng)元素最外層的 keyimage.png
10.json_set()
插入并替換 如果指定位置或指定 key 的值不存在舔糖,會執(zhí)行插入操作碌廓,如果存在,則執(zhí)行更新操作image.png
11.json_table()
JSON_TABLE(expr, path COLUMNS (column_list) [AS] alias)
從 JSON 中提取數(shù)據(jù)并以表格的形式返回
???? 5.7好像不支持
select *
from
(select
json_object('name',name,'age',age,'city',city) as json
from tmp_eg
) t1,
json_table(
json,
'$[*]'
columns (value varchar(255) path '$')
) as jt