优化建议:

  1. 使用正则表达式替代循环判断,可以提高函数的执行效率。

  2. 减少变量的使用,例如可以不需要定义isPhone这个变量,直接使用SELECT REGEXP判断结果。

  3. 可以考虑将函数拆分成多个小函数,提高代码的可读性和可维护性。

优化后的函数如下:

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

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

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

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