Я пытаюсь создать функцию, которая удалит повторяющиеся символы из строки. Только персонажи, которые следуют друг за другом. Например:
«AAABBBCCCDDAABB» должен давать «ABCDAB». Я сделал следующий код, но он не работает. Можете ли вы помочь, пожалуйста? Я новичок в разработке Mysql ...
CREATE DEFINER=`root`@`localhost` FUNCTION `REMOVE_DUPLICATE_CHAR_FROM_STRING`(myString VARCHAR(50)) RETURNS varchar(50) CHARSET utf8mb4 COLLATE utf8mb4_general_ci
NO SQL
BEGIN
DECLARE tempString VARCHAR(50) DEFAULT '';
DECLARE sPreviousChar VARCHAR(1);
DECLARE sCurrentChar VARCHAR(1);
DECLARE inti INTEGER DEFAULT 1;
set tempString = myString;
IF LENGTH(tempString) > 0 THEN
WHILE(inti <= LENGTH(tempString)) DO
SET sCurrentChar = SUBSTRING(tempString, inti, 1);
IF inti > 1 THEN
SET sPreviousChar = SUBSTRING(tempString, inti - 1, 1);
IF sCurrentChar = sPreviousChar THEN
SET tempString = CONCAT(LEFT(tempString, inti - 1), SUBSTRING(tempString, inti, 1000));
END IF;
END IF;
SET inti = inti + 1;
END WHILE;
RETURN (tempString);
ELSE
RETURN 0;
END IF;
END