Mysql 5.7创建 regexp_replace函数 8.0 自带

查看mysql当前是否支持编写自定义

SHOW variables  like '%fun%'; 

  log_bin_trust_function_creators=OFF
  log_bin_trust_function_creators=ON

开启自定义函数

set global log_bin_trust_function_creators=1;
SELECT regexp_replace('abcdefg123456ABC','[a-z0-9]','&')    
        
#创建前删除已经创建的自定义函数
drop function if exists regexp_replace;
#创建 regexp_replace函数
DELIMITER $$  
CREATE FUNCTION  `regexp_replace`(string_a VARCHAR(1000),pattern VARCHAR(1000),string_b VARCHAR(1000))  
  RETURNS VARCHAR(1000)  
  DETERMINISTIC  
BEGIN  
 DECLARE string_c VARCHAR(1000);  
 DECLARE nub VARCHAR(1);  
 DECLARE i INT;  
 SET i =1;  
 SET string_c ='';  
 IF string_a REGEXP pattern THEN  
    loop_label: LOOP  
      IF i>CHAR_LENGTH(string_a) THEN  
        LEAVE loop_label;  
 END IF;
 SET nub = SUBSTRING(string_a,i,1);  
 IF NOT nub REGEXP pattern THEN  
 SET string_c = CONCAT(string_c,nub);  
      ELSE  
        SET string_c = CONCAT(string_c,string_b);  
      END IF;  
      SET i=i+1;  
    END LOOP;  
  ELSE
    SET string_c = string_a;  
  END IF;  
  RETURN string_c;  
END$$  
DELIMITER; 
 
select t1.item_json,regexp_replace( t1.item_json,'[{""}]','') dd     from  t_reservation_check_single t1 where  t1.id in (1251,1237);

-- JSON 示例:

{"GENERAL":["2257_ADC_CEX_LC","265_MAB_CE_NR","265_MAB_SEC_LC","ACTIVITY_LC","ADCC"]}    GENERAL:[2257_ADC_CEX_LC,265_MAB_CE_NR,265_MAB_SEC_LC,ACTIVITY_LC,ADCC]
{"WBP2082":"2082_ELISA_L","WBP807":"807_ELISA_P"}    WBP2082:2082_ELISA_L,WBP807:807_ELISA_P

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值