Mysql JSON欄位提取某乙個屬性值的函式

2022-08-20 05:36:10 字數 925 閱讀 4581

mysql從5.7開始才支援json_extract等 json相關的函式,

專案裡用到的mysql是5.6的,需要提取json欄位裡某乙個屬性值進行統計,

自己寫了乙個笨的提取方法:

create definer=`root`@`%` function `jsonextract`(`fieldname` varchar(30),`jsonstr` varchar(1024)) returns double

begin

declare firstpos int;

declare firststr varchar(1024);

declare secondpos int;

declare thirdpos int;

declare resultstr varchar(200);

declare result double;

set firstpos = position(fieldname in jsonstr);

set firststr = substr(jsonstr,firstpos);

set secondpos = position(':' in firststr);

set thirdpos = position(',' in firststr);

set resultstr = substr(firststr,secondpos+1,thirdpos-secondpos-1);

set result = convert(resultstr,decimal(20,6));

return result;

end我這裡最後轉成了double返回。

裡面用到了幾個mysql自帶函式

1. position 定位字串 子串的位置

2. substr  字串擷取

3. convert 資料型別轉換

Mysql json欄位填坑!!!

mysql5.7以上支援json的操作,以及增加了json儲存型別 使用時注意 1 json列儲存的必須是json格式資料,否則會報錯。2 json資料型別是沒有預設值的。json欄位條件查詢時 如果filter model.data kwargs data 查詢結果為none 正確示例 db.qu...

Hive提取json欄位資訊

有乙個函式可以用於處理json資料,如下 其中第乙個引數為待處理的字串 第二個引數為要提取內容的key select get json object target id 結果 4320701224301第乙個引數填寫json物件變數,第二個引數使用 表示json變數標識,然後用 或 讀取物件或陣列 ...

spark給某一列字段進行加密

有一些資料存在一些敏感資料,需要進行一些特殊處理,比如身份證號,可以用hash演算法或者md5進行加密,我用的處理方式是將加密演算法自定義成udf函式,拿md5舉例子,直接上 加密演算法 def hashmd5 content string string dataset 資料集 colname 要加...