mysql自定义函数--得到字符串中最后一个分隔符前面的内容

工作中使用到一些特殊的字符串,比如‘50-1-1-2-3’,当需要得到‘50-1-1-2’时可使用以下自定义函数
DELIMITER $$
 
USE `mydb`$$
 
DROP FUNCTION IF EXISTS `get_content_before_last_separator`$$
 
CREATE DEFINER=`root`@`%` FUNCTION `get_content_before_last_separator`(charStr VARCHAR(200),separatorStr VARCHAR(200)) RETURNS VARCHAR(64) CHARSET utf8
BEGIN
    DECLARE resultStr VARCHAR(200);
     
    SELECT SUBSTRING_INDEX(charStr,separatorStr,LENGTH(charStr)-LENGTH(REPLACE(charStr,separatorStr,''))) INTO resultStr FROM DUAL;   
     
    RETURN resultStr;
END$$
 
DELIMITER ;

你可能感兴趣的:(mysql常用sql知识)