MySQL正则表达式搜索与替换
MySQL正则表达式搜索与替换
这个问题已经有答案了:
我想从我的数据库中删除所有图像的高度属性。它们的标记如下所示:
我曾经要做类似这样的事情:
UPDATE jos_content SET introtext = REPLACE(introtext, 'height=".*"', '');
但我不知道如何在MySQL查询中使用正则表达式。我确实发现它们存在,只是不知道如何在这种情况下使用它们。
admin 更改状态以发布 2023年5月22日
尝试以下
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; SET i = 1; SET temp = ''; 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; RETURN temp; END$$ DELIMITER ;
并运行您的更新查询
UPDATE jos_content SET introtext = regex_replace('height=".*"', 'height=""',introtext);