MySQL的東西不具備這一點,因爲更換一個簡單的解決方案()不具有圖案,通配符或正則表達式的支持。
我會建議使用這樣的事情:
/* EXTENDED Functionality allows user to use patterns up to 100 characters long, not just 1 character
/* Original @ http://www.nacodes.com/#ECHo75Y7RYXbgow0.99 */
DELIMITER $$
CREATE FUNCTION `regex_replace`(pattern VARCHAR(100),replacement VARCHAR(1000),original VARCHAR(1000))
RETURNS VARCHAR(1000)
DETERMINISTIC
BEGIN
DECLARE temp VARCHAR(1000);
DECLARE ch VARCHAR(100);
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,CHAR_LENGTH(pattern));
IF NOT ch REGEXP pattern THEN
SET temp = CONCAT(temp,LEFT(ch,1));
SET i=i+1;
ELSE
SET temp = CONCAT(temp,replacement);
SET i=i+CHAR_LENGTH(pattern);
END IF;
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 ;
Source here
作爲替代方案,可以隨時將數據導出到文件,修改在文本編輯器中的字段或sed的,例如,並將其導回到MySQL。
抱歉沒有包括它。 MySQL的。 – popkutt
在本網站上搜索「regexp replace mysql」... – fancyPants