2017-10-15 74 views
1

我试图在名为“wp_options”的MySQL表中使用列名“option_value”替换字符串“example.com”和“newdomain.com”。使用插入或更新替换MySQL列中的字符串

我已经看到很多关于更换的其他问题,但问题是他们都使用REPLACE函数,这会损坏我的表结构,因为它会删除行(如果匹配)并插入新行(1 ),这会使主键和唯一标识消失(例如,这会导致我失去主题配置)。

有没有办法用INSERT函数替换这样的字符串?或者UPDATE

+1

这些解决方案不使用'REPLACE()'*函数*。他们正在使用'REPLACE'语句。这两者完全不同。 –

回答

1

一个简单update声明应该这样做:

UPDATE wp_options 
SET option_value = 'newdomain.com' 
WHERE option_value = 'example.com' 

编辑:
如果要求为澄清下面的评论值的范围内进行搜索,您可以使用replace功能:

UPDATE wp_options 
SET option_value = REPLACE(option_value, 'example.com', 'newdomain.com') 
WHERE option_value LIKE '%example.com%' 
+0

但是这不会搜索所有列中的字符串,它只是替换它,如果它等于example.com,我要求的是搜索和替换为一个字符串(我的意思是,即使我有像例子.com/posts/something,它也应该在这里替换它)。 – Madno

+0

@Madno我误解了这个问题。请参阅我编辑的答案,以找到适合此要求的解决方案。 – Mureinik