MySQL的常用JSON函式

2022-09-05 23:27:16 字數 1461 閱讀 7228

1.json_search(col, type, val)

json_search(col ->> '$[*].key', type, val)

col: json格式的欄位名

key:要搜尋的col欄位的key,如果字段沒有key可以省略,例如單純的json字串['1', '2', '3', '4']

type:可以為'one'或者'all','one'表示搜尋到乙個即返回,'all'表示搜尋完再返回

val:要搜尋的字段值,字串格式,支援模糊搜尋

返回值:如果col欄位的key中含有val值,則返回第乙個出現該值的索引;如果col欄位的key中不含有val值,則返回null

注:如果col欄位為單值json,不需要加[*],只有當其為陣列json時才需要加

2. json_contains(col, '')

col:json格式的欄位名

key:要搜尋的col欄位的key,字串格式

val:要搜尋的字段值,字串格式

返回值:如果col欄位的key中含有val值,則返回1;如果col欄位的key中不含有val值,則返回0

這兩個函式都可以檢索json格式的字段中是否含有指定的值,下面舉例說明

teams表,有4個字段,其中leaders是json格式,表示團隊主管

id   name     create_time    leaders

1 小象 2018-10

-05[, ,

]2 新人類 2018-05

-15null

3 芒果 2017-08

-22[,

]4 三葉草 2018-01

-10[,

]5 火車頭 2017-12

-12null

現在要檢索張三作為團隊主管的團隊

select

*from

teams

where json_search(leaders ->>

'$[*].displayname

', '

one', '

%張三%

') is

notnull

;select

*from

teams

where json_contains(leaders, '

') =

1;

以上兩種方法都查出結果

id   name     create_time    leaders

1 小象 2018-10

-05[, ,

]4 三葉草 2018-01

-10[,

]

mysql操縱json函式

create table t1 name json insert into t1 values bool true,can false,learning null,chiness 中文 mysql select json depth name from t1 返回json文字的深度 輸出結果 4 1...

mysql 常用的函式 mysql常用的函式

1 if expr1,expr2,expr3 函式 如果 expr1 是true 則 if 的返回值為expr2 否則返回值則為 expr3。if 的返回值為數字值或字串值,具體情況視其所在語境而定。例 2 ifnull expr1,expr2 函式 如果expr1 不為 null,則 ifnull...

mysql 常用函式迴圈 mysql 常用函式

mysql 常用函式 數字函式 ceiling x 返回大於x的最小整數值 floor x 返回小於x的最大整數值 truncate x,y 返回數字x截短為y位小數的結果 僅僅只是截斷,不會進行四捨五入計算 聚合函式 group concat col 返回由屬於一組的列值連線組合而成的結果 字串函...