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 leaders1 小象 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 leaders1 小象 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 返回由屬於一組的列值連線組合而成的結果 字串函...