1 頁 (共 1 頁)

[分享] 以新的字串取代資料表內舊的字串之 SQL 指令

發表於 : 2002-03-05 18:11
akimasa
竹貓DOMAIN變更,如果有在自己網站的phpBB做連結的話,以phpMyadmin,選擇phpbb2使用的DB後,執行下面指令:

代碼: 選擇全部

update phpbb_posts_text set post_text=REPLACE(post_text,'http://www.stonehands.com.tw/~takeigi/','http://heaven.wusdsl.net/') where post_text LIKE '%http://www.stonehands.com.tw/~takeigi/%'
說明:
將DB內,phpbb_posts_text這個table內的post_text這欄,內含"http://www.stonehands.com.tw/~takeigi/"字串,全改為"http://heaven.wusdsl.net/",這樣就不用一筆一筆去修改了,一個指令全部完成,另也可用在自己的DB管理上,以某字串,取代特定字串,一次ok!

發表於 : 2002-03-06 00:28
oO]-[Oo
(:Y)(:Y)(:Y)(:Y)(:Y)五ㄍㄠˋ讚

發表於 : 2002-04-04 00:25
rings1
用來搬家超好用的

感謝 8-)

發表於 : 2002-06-27 22:20
輕狂
我參照這個語法修正由RC版升級正式版後user_lang 欄位的字串,
將 chinese_tranditional_taiwan 修正為現在的 chinese_traditional_taiwan。

update phpbb_users set user_lang=REPLACE( user_lang, 'chinese_tranditional_taiwan','chinese_traditional_taiwan')
where user_lang LIKE '%chinese_tranditional_taiwan%';

雖然是可以啦,不過我對於後面 LIKE 這個字有疑問,有誰能說明一下LIKE 有特別用途嗎?
我手邊MySQL的書沒有這個字....

發表於 : 2002-06-27 23:12
輕狂
自己回答自己,
Like 是部份比對,假設要搜尋完全相同的字串,那就要使用 = 號。

發表於 : 2002-06-29 00:44
Katsuya
Like 後面的%號也是有學問的喔!! %xxx 好像是結尾為xxx 而 xxx% 的話是開頭為xxx...
忘光了... SQL蠻少用的... ^^"

發表於 : 2002-06-29 01:02
輕狂
應該是吧,
如果用 = 號的話就不能用那些代表萬用字元的 % 號...
至少我是這樣理解的...:p

Re: [分享]以特定字串取代DB內原來的資料!

發表於 : 2008-12-30 21:17
心靈捕手
akimasa 寫:竹貓DOMAIN變更,如果有在自己網站的phpBB做連結的話,以phpMyadmin,選擇phpbb2使用的DB後,執行下面指令:

代碼: 選擇全部

update phpbb_posts_text set post_text=REPLACE(post_text,'http://www.stonehands.com.tw/~takeigi/','http://heaven.wusdsl.net/') where post_text LIKE '%http://www.stonehands.com.tw/~takeigi/%'
說明:
將DB內,phpbb_posts_text這個table內的post_text這欄,內含"http://www.stonehands.com.tw/~takeigi/"字串,全改為"http://heaven.wusdsl.net/",這樣就不用一筆一筆去修改了,一個指令全部完成,另也可用在自己的DB管理上,以某字串,取代特定字串,一次ok!
目前, phpBB 3 資料庫的文章資料表為 "phpbb_posts";
因此, 上述指令若要運用在 phpBB 3 的資料庫, 則只要修改資料表名稱即可.

例如:

代碼: 選擇全部

UPDATE phpbb_posts SET post_text = REPLACE (post_text, '220.134.232.37/phpbb2', '220.134.232.37/phpbb3') WHERE post_text LIKE '%220.134.232.37/phpbb2%' 
說明:
更新資料表 phpbb_posts 之欄位 post_text 中, 內含 "wang5555.dnsfor.me/phpbb2" 的字串為 "wang5555.dnsfor.me/phpbb3".

Re: [分享] 以新的字串取代資料表內舊的字串之 SQL 指令

發表於 : 2011-07-04 02:48
阿維
如果想要取代在私訊裡面的舊字串,也能用以下的範例來取代! ;)

代碼: 選擇全部

UPDATE phpbb_privmsgs SET message_text = REPLACE (message_text, '舊字串', '新字串') WHERE message_text LIKE '%舊字串%'