2017-10-15 72 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