MYSql多次替换查询

时间:2011-03-28 14:21:41

标签: mysql replace

我有这个

UPDATE  table 
SET  example = REPLACE(example, '1', 'test') 
WHERE example REGEXP '1$'

因此,此代码将“example”字段中的所有“1”实例替换为“test”。

我想重复2,3,4等等。

但是使用单独的查询会非常低效。

我只用一个查询就可以做到这一点吗?

由于

2 个答案:

答案 0 :(得分:41)

俄罗斯套娃; - )

REPLACE(REPLACE(REPLACE(example, '3', 'test') , '2', 'test') , '1', 'test') 

答案 1 :(得分:0)

存储过程。

鉴于你有一张桌子&lut;'使用一组您要在字段中替换的值' content'从表中称为'示例'

delimiter //
CREATE PROCEDURE myreplace()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE lv CHAR(64);
DECLARE li INT;
DECLARE lut CURSOR FOR SELECT id,value FROM lut l;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN lut;
lut_loop: LOOP
FETCH lut INTO li,lv;
IF done THEN
LEAVE lut_loop;
END IF;
update example set content = replace(content,lv,li);
END LOOP; 
CLOSE lut;
END;
//
delimiter ;
call myreplace();
drop procedure myreplace;