【 TiDB 使用环境】生产环境
【 TiDB 版本】5.4.3
【遇到的问题:问题现象及影响】
想创建一个函数,可以把字符串转url编码,现在有MySQL的
DELIMITER $$
CREATE FUNCTION urlencode(str VARCHAR(255)) RETURNS VARCHAR(255)
BEGIN
DECLARE hex_chars VARCHAR(16) DEFAULT '0123456789ABCDEF';
DECLARE encoded_str VARCHAR(255) DEFAULT '';
DECLARE c VARCHAR(1);
DECLARE i INT DEFAULT 1;
WHILE i <= CHAR_LENGTH(str) DO
SET c = SUBSTRING(str, i, 1);
IF LOCATE(c, 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.~') > 0 THEN
SET encoded_str = CONCAT(encoded_str, c);
ELSE
SET encoded_str = CONCAT(encoded_str, '%', SUBSTRING(hex_chars, ORD(c) DIV 16 + 1, 1), SUBSTRING(hex_chars, ORD(c) MOD 16 + 1, 1));
END IF;
SET i = i + 1;
END WHILE;
RETURN encoded_str;
END $$
DELIMITER ;
SELECT urlencode('Hello World');
显示如下
Hello%20World
想要一个tidb的,或者有没有现成内置函数可以实现