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

phpBB-TW Knowledge Base
收集網友們在竹貓所發表的教學主題或文章,以利分享!
(僅供瀏覽,由版主群維護)
回覆文章
akimasa
竹貓好朋友
竹貓好朋友
文章: 173
註冊時間: 2002-02-02 15:51
來自: 台灣台北
聯繫:

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

文章 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!
最後由 心靈捕手 於 2013-07-03 09:15 編輯,總共編輯了 2 次。
理由: 更新主題!
oO]-[Oo
南宮博士
南宮博士
文章: 512
註冊時間: 2001-11-11 18:09
來自: TAIWAN
聯繫:

文章 oO]-[Oo »

(:Y)(:Y)(:Y)(:Y)(:Y)五ㄍㄠˋ讚
OOHOO said:
有事Mail給我, 不要P我, 因為根本沒辦法P.
rings1
星球普通子民
星球普通子民
文章: 25
註冊時間: 2002-02-07 21:57

文章 rings1 »

用來搬家超好用的

感謝 8-)
頭像
輕狂
竹貓好朋友
竹貓好朋友
文章: 86
註冊時間: 2002-02-22 11:55
聯繫:

文章 輕狂 »

我參照這個語法修正由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的書沒有這個字....
=何如一樹天然色﹐便是粗枝也有情=
藝文聚賢樓古典詩詞教學網站
頭像
輕狂
竹貓好朋友
竹貓好朋友
文章: 86
註冊時間: 2002-02-22 11:55
聯繫:

文章 輕狂 »

自己回答自己,
Like 是部份比對,假設要搜尋完全相同的字串,那就要使用 = 號。
=何如一樹天然色﹐便是粗枝也有情=
藝文聚賢樓古典詩詞教學網站
Katsuya
星球普通子民
星球普通子民
文章: 24
註冊時間: 2002-06-05 16:01
聯繫:

文章 Katsuya »

Like 後面的%號也是有學問的喔!! %xxx 好像是結尾為xxx 而 xxx% 的話是開頭為xxx...
忘光了... SQL蠻少用的... ^^"
頭像
輕狂
竹貓好朋友
竹貓好朋友
文章: 86
註冊時間: 2002-02-22 11:55
聯繫:

文章 輕狂 »

應該是吧,
如果用 = 號的話就不能用那些代表萬用字元的 % 號...
至少我是這樣理解的...:p
=何如一樹天然色﹐便是粗枝也有情=
藝文聚賢樓古典詩詞教學網站
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8510
註冊時間: 2004-04-30 01:54
來自: Taiwan

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

文章 心靈捕手 »

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".
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
阿維
竹貓忠實會員
竹貓忠實會員
文章: 868
註冊時間: 2003-02-23 13:36
來自: 台南市

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

文章 阿維 »

如果想要取代在私訊裡面的舊字串,也能用以下的範例來取代! ;)

代碼: 選擇全部

UPDATE phpbb_privmsgs SET message_text = REPLACE (message_text, '舊字串', '新字串') WHERE message_text LIKE '%舊字串%' 
提供代客維護 phpBB 3.0.x 以及外掛/風格升級或安裝的服務,如需委託,請與我聯絡,謝謝! ;)
我的 Skype 帳號:gpxjordan
回覆文章

回到「教學文件庫」