5.7 regex_replace
时间: 2023-09-11 17:08:34 浏览: 114
在MySQL 5.7中,没有内置的regex_replace函数。但是你可以通过创建自定义函数来实现这个功能。下面是一个示例代码,展示了如何在MySQL 5.7中创建一个名为regexp_replace的自定义函数:
```
# 创建前删除已经创建的自定义函数
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 ;
```
使用这个自定义函数,你可以在MySQL 5.7中实现类似于regexp_replace的功能。通过调用regexp_replace函数并传入需要替换的字符串、匹配的正则表达式以及替换的字符串,函数将返回替换后的结果。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
阅读全文