该函数名为getPhone,参数为一个长度为3000的utf8mb4字符串。函数返回一个长度为11的utf8编码的varchar类型。

函数开始时,声明了四个变量:isPhone,ipos,phone和c_char。isPhone是一个整型变量,初始值为0;ipos是一个整型变量,初始值为0;phone是一个长度为11的字符串,初始值为空;c_char是一个长度为1的utf8mb4编码的字符串,初始值为空。

接下来,使用SELECT语句将f_string与正则表达式“[1][35678][0-9]{9}”进行匹配,并将结果存入isPhone变量中。

如果isPhone为1,则进入循环。在循环中,使用SELECT语句将f_string的第ipos个字符存入c_char变量中。如果c_char为1,则使用SELECT语句将f_string从ipos开始的11个字符存入phone变量中,并使用正则表达式“[1][35678][0-9]{9}”匹配phone。如果匹配成功,则跳出循环;否则将ipos加上11。如果c_char不为1,则将ipos加1。

在每次循环结束时,如果ipos等于f_string的长度,则跳出循环。

最后,返回phone变量的值

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 pho

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

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