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 要加...