我想从 mysql 的列中删除所有或特定的不可打印字符。 我认为这可以使用 regexp_replace() 函数来实现,但我不知道如何实现。 不可打印字符的 Ascii 值从 o 到 31。 我有一个解决方案,如下所示: 如果我编写函数从输入字符串中一个一个地读取所有字符并将其转换为 ASCII。然后每次我将这个 Ascii 值与输入的 ascii 值进行比较,如果匹配则替换它,我的函数将返回替换的字符串。 但是在我的应用程序中,数据总是大量的,所以我认为即使我使用选择查询和用户定义的函数,它也会消耗很多时间来处理。 所以我想要其他方法来执行此任务。我认为 regexp_replace() 会很棒,但我不知道如何使用它
请帮忙
谢谢你, 罗纳克
最佳答案
DROP function IF EXISTS mysql_replaceallnonprintablecharacters;
CREATE function mysql_replaceallnonprintablecharacters (data VARCHAR(1024))
returns VARCHAR(1024)
begin
DECLARE i INT DEFAULT 0;
DECLARE finaldata VARCHAR(1024) DEFAULT '';
SET FINALDATA:=data;
WHILE i < 31 do
SET FINALDATA:=REPLACE(finaldata, CHAR(i), '');
SET i := i+1;
end WHILE;
RETURN finaldata;
end
关于mysql - 从 mysql 中的列中删除所有或特定的不可打印字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11535350/