天天看點

mysql批量替換字段關鍵詞_mysql 如何批量替換 字段中的 title="xxxx"

這是在 stackoverflow 看到的

首先建立一個mysql函數:

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 ;

執行上邊自定義函數後,執行sql如下:

SELECT link_image,regex_replace('[title=""]' , '', link_image) AS replace_link_img FROM wp_links

WHERE link_image LIKE '%title="%';

執行結果:

mysql批量替換字段關鍵詞_mysql 如何批量替換 字段中的 title="xxxx"

但是有個問題

title 中間的沒有替換, 麻煩哪位大神看下這個mysql function 怎麼改