gpt4 book ai didi

mysql - 从数据库中删除非字母/数字

转载 作者:行者123 更新时间:2023-11-29 12:50:53 28 4
gpt4 key购买 nike

我使用 Dragon Naturallyspoken 来处理一堆音频,并将结果导入到数据库中。现在我的数据库中有一堆疯狂的字符,例如:�。我怎样才能摆脱所有不是“正常”空格或字母/数字的符号/其他东西?

最佳答案

DELETE FROM tbl WHERE results NOT REGEXP '[[:alnum:]]+' - 来自 documentation 的调整

更新

因为我误解了@Alan 的要求......我的第一个倾向是使用外部代码消除噪音。如果你做不到,MariaDBREGEXP_REPLACE开箱即用,对于 mysql 本身,有 exists a UDF确实类似。所以,你使用类似的东西:

UPDATE tbl SET results = regexp_replace(results, '[^[:alnum:][:space:]]' '');

您可以使用 this page 中的函数:

DELIMITER $$
CREATE FUNCTION `regex_replace`(pattern VARCHAR(1000),replacement VARCHAR(1000),original VARCHAR(1000))

RETURNS VARCHAR(1000)
DETERMINISTIC
BEGIN
DECLARE temp VARCHAR(1000);
DECLARE ch VARCHAR(1);
DECLARE i INT;
DECLARE j INT;
DECLARE qbTemp VARCHAR(1000);

SET i = 1;
SET j = 1;
SET temp = '';
SET qbTemp = '';

IF original REGEXP pattern THEN
loop_label: LOOP
IF i>CHAR_LENGTH(original) THEN
LEAVE loop_label;
END IF;
SET ch = SUBSTRING(original,i,1);
IF NOT ch REGEXP pattern THEN
SET temp = CONCAT(temp,ch);
ELSE
SET temp = CONCAT(temp,replacement);
END IF;
SET i=i+1;
END LOOP;
ELSE
SET temp = original;
END IF;
SET temp = TRIM(BOTH replacement FROM temp);
SET temp = REPLACE(REPLACE(REPLACE(temp , CONCAT(replacement,replacement),CONCAT(replacement,'#')),CONCAT('#',replacement),''),'#','');
RETURN temp;
END$$
DELIMITER ;

然后我就可以运行这个命令:

更新成绩单 SET 成绩单 = regex_replace('[^[:alnum:][:space:]]','', 成绩单);``

希望有帮助...

关于mysql - 从数据库中删除非字母/数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24741785/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com