yujuan09

原文链接:https://blog.csdn.net/oyezhou/article/details/81665643

DELIMITER $$
 
DROP FUNCTION IF EXISTS `Num_char_extract`$$
 
CREATE FUNCTION `Num_char_extract`(Varstring VARCHAR(100)CHARSET utf8, flag INT) RETURNS VARCHAR(50) CHARSET utf8
BEGIN
    DECLARE len INT DEFAULT 0;
    DECLARE Tmp VARCHAR(100) DEFAULT \'\';
    SET len=CHAR_LENGTH(Varstring);
    IF flag = 0 
    THEN
        WHILE len > 0 DO
        IF MID(Varstring,len,1)REGEXP\'[0-9]\' THEN
        SET Tmp=CONCAT(Tmp,MID(Varstring,len,1));
        END IF;
        SET len = len - 1;
        END WHILE;
    ELSEIF flag=1
    THEN
        WHILE len > 0 DO
        IF (MID(Varstring,len,1)REGEXP \'[a-zA-Z]\') 
        THEN
        SET Tmp=CONCAT(Tmp,MID(Varstring,len,1));
        END IF;
        SET len = len - 1;
        END WHILE;
    ELSEIF flag=2
    THEN
        WHILE len > 0 DO
        IF ( (MID(Varstring,len,1)REGEXP\'[0-9]\')
        OR (MID(Varstring,len,1)REGEXP \'[a-zA-Z]\') ) 
        THEN
        SET Tmp=CONCAT(Tmp,MID(Varstring,len,1));
        END IF;
        SET len = len - 1;
        END WHILE;
    ELSEIF flag=3
    THEN
        WHILE len > 0 DO
        IF NOT (MID(Varstring,len,1)REGEXP \'^[u0391-uFFE5]\')
        THEN
        SET Tmp=CONCAT(Tmp,MID(Varstring,len,1));
        END IF;
        SET len = len - 1;
        END WHILE;
    ELSE 
        SET Tmp = \'Error: The second paramter should be in (0,1,2,3)\';
        RETURN Tmp;
    END IF;
    RETURN REVERSE(Tmp);
    END$$
 
DELIMITER ;

利用上述代码,在MySQL中创建一个名为Num_char_extract的函数,即可通过调用该函数进行字符提取。

使用方法如下:

(1) 第二个参数为0:代表提取数字

 

 2) 第二个参数为1:代表提取字母

 

 3) 第二个参数为2:代表提取数字+字母

 

 (4) 第二个参数为3:代表提取汉字

 

 

(5) 第二个参数为其他数字:打印错误提示

 

分类:

技术点:

相关文章:

  • 2021-08-06
  • 2022-12-23
  • 2022-12-23
  • 2021-12-05
  • 2021-08-31
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-12-31
  • 2021-12-23
  • 2022-12-23
相关资源
相似解决方案