CREATE FUNCTION `remove_duplicate_chars` (input_text Text, char_to_replace VARCHAR(1)) RETURNS Text
BEGIN
DECLARE result_text Text;
DECLARE current_char VARCHAR(1);
DECLARE prev_char VARCHAR(1) DEFAULT '';
DECLARE i INT DEFAULT 1;
SET result_text = '';
WHILE i <= LENGTH(input_text) DO
SET current_char = SUBSTRING(input_text, i, 1);
IF current_char != prev_char OR current_char != char_to_replace THEN
SET result_text = CONCAT(result_text, current_char);
END IF;
SET prev_char = current_char;
SET i = i + 1;
END WHILE;
RETURN result_text;
END $$
字符串 使用源代码如下:
SELECT replace_consecutive_chars('aabbcdddaaee', 'd') AS result;
3条答案
按热度按时间twh00eeo1#
根据上面的建议,我想出了这个:
字符串
如前所述,它捕获第一组中的每个事件并替换为单个字符。在v8.0上测试,似乎适用于您的示例。
mklgxw1f2#
让我们尝试以下操作:
字符串
**PS:**首先在SQL中使用适当的查询来检索所需的数据,查询的标准格式如下:
型
然后你必须更新它并向数据库发送更新查询。
有关更多信息,请参阅以下链接:
这些问题可能有不止一个解决办法。
tvz2xvvm3#
我认为这样更好,更具体:
字符串
使用源代码如下:
型
结果=> aabbcdaee