zoukankan      html  css  js  c++  java
  • mysql字段中提取汉字,去除数字以及字母

    如果只是删除尾部的中文,保留数据,可以用以下的简单方式

    MySQL [test]> select '1234万美元' + 0 as num;
    +------+
    | num  |
    +------+
    | 1234 |
    +------+
    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
    COMMENT '标识 0 提取数字 1 提取字母 2提取数字+字母 3 提取汉字'
    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 ;
    
    -- select Num_char_extract('字12段',0);
  • 相关阅读:
    cadence中画焊盘注意事项
    频率带宽解释
    一种RC滤波电路的验证
    24L01-2.4G无线传输模块调节记录
    51中xdata,idata,data,pdata的区别
    调试24L01经验总结
    将scl分频
    I2C详细介绍
    汽车电源系统概述
    PCB命名规则-allegro
  • 原文地址:https://www.cnblogs.com/chenzechao/p/11953020.html
Copyright © 2011-2022 走看看