优化建议:

  1. 使用正则表达式替代循环和子字符串函数,可以提高函数的执行效率。

  2. 减少变量的使用,可以节约内存空间并提高函数的执行效率。

  3. 减少SQL查询的次数,可以减少与数据库的交互次数,提高函数的执行效率。

  4. 删除不必要的判断语句,可以简化函数的逻辑结构,提高函数的执行效率。

改进后的代码如下:

CREATE DEFINER=ioc@% FUNCTION getPhone(f_string varchar(3000) CHARACTER SET utf8mb4) RETURNS varchar(11) CHARSET utf8 BEGIN

DECLARE phone VARCHAR(11) DEFAULT '';

SELECT SUBSTRING(f_string, REGEXP_INDEX(f_string, "[1][35678][0-9]{9}"), 11) INTO phone;

RETURN phone;

END

MySQL 优化该函数 CREATE DEFINER=ioc FUNCTION getPhonef_string varchar3000 CHARACTER SET utf8mb4 RETURNS varchar11 CHARSET utf8BEGINDECLARE isPhone INT1 DEFAULT 0;DECLARE ipos INT11 DEFAULT 0;DECLARE phone

原文地址: https://www.cveoy.top/t/topic/fFev 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录