SQL取代指令
因為要把網站的地址從【臺北市市民大道三段八號5樓A35~36】變成【臺北市市民大道三段八號六樓1-1室】
所以就想從SQL下手
先使用SQL的搜尋,找到是那些資料表以及欄位與資料的數量
這樣才方便取代與對照取代的數量是否正確
在正式取代之前,還有一個【模擬查詢】,可以用來模擬更改的狀況以防出錯
以下為範例
UPDATE wp_postmeta SET meta_value=REPLACE (meta_value, '5樓A35~36', '六樓1-1室');
以下為解釋
UPDATE 資料表 SET 資料欄位=REPLACE (資料欄位, '原本的字串', '取代的字串');
Unicode轉換
如果使用Elementor編輯頁面、文章、商品
裡面的內容會被轉換成Unicode,所以如果想要用SQL直接取代的話很麻煩
例如這一次我要將【臺北市市民大道三段八號5樓A35~36】
轉換為【台北市中正區市民大道三段8號6樓1-1室】
發現【臺北市市民大道三段八號5樓A35~36】在SQL找到的資料偏少
即便取代完成,預計要變更的地方也沒成功變更
才發現資料是在【wp_postmeta】資料表裡面
然後臺北市市民大道三段八號5樓A35~36的Unicode值為
\\u81fa\\u5317\\u5e02\\u5e02\\u6c11\\u5927\\u9053\\u4e09\\u6bb5\\u516b\\u865f5\\u6a13A35~36
導致我搞很久
所以下次要轉之前可以拿上面這串Unicode去轉中文,找規則再處理
通常中文之間都會多一個\,也就是臺\北\市\市\民\ 這種感覺
通常沒意外都是在wp_postmeta資料表,meta_value欄位
UPDATE wp_postmeta SET meta_value=REPLACE (meta_value, '原本的字串', '取代的字串');