mysql - 从 mysql 中的列中删除所有或特定的不可打印字符

标签 mysql regex ascii non-printable

我想从 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/

相关文章:

php - 只过滤掉一些与SQL有共同点的参数

用于查找的 Python 正则表达式和用于从列表中删除的正则表达式

python - 如何在 Python 中将 Unicode 文件读取为 Unicode 字符串

python - 将字段定界符作为 ctrl A 并将行定界符作为\n 读取到 python 中

php - 如何获取MYSQL相关搜索结果

mysql - 如何制作一个可以打开mysql的程序

javascript - 用于识别 guid 或数字的正则表达式

c - 如何以整数而不是 ASCII 代码值获取输出

javascript - Node js与mysql模块连接握手错误

javascript - 用引号分割文本而不是javascript中的空格