朋友這兩天跟我反應,f2blog的文章匯入到wordpress的時候,迴響的部分沒有跟著匯入,於是他很熱心的提供了兩邊的資料表初步的對應,我也依照他的方式轉了過去,結果發現問題卡住了,因為迴響當初在f2blog裡面對應的文章id,在文章匯入到wordpress的時候早已被蓋掉換過,所以轉過去的迴響根本對應不到正確的文章 @@

今天下午,本來工作已經忙到翻了,不過突然興致一來,開始著手如何轉換….做這種東西就是很討厭,平常要我碰我是真不想碰,但是碰上了就停不下來…..下午那時候已經是差不多下班時間了吧,弄了一下發現我慣用的MS SQL語法居然不能用在MySQL上面,就這樣又卡住了….@@

一直到晚上小朋友睡著了才又重新來過,這時候才在網路上找到MySQL可以用的更新資料語法,試了一下就上手做了,前後大概花了一個多鐘頭,就完成了,現在把詳細的步驟以及SQL語法都貼上來,有需要的就拿去用吧!看不懂得就…..跳過摟!我自己是純粹要記錄一下罷了。

f2blog迴響資料匯入wordpress步驟如下: 

1.新增兩個欄位在f2blog_comments
  1.postTitle varchar(150)  2.wp_ID int(12)

2.更新postTitle資料放入對應的f2blog文章標題
UPDATE (f2blog_comments LEFT JOIN f2blog_logs ON f2blog_comments.logId = f2blog_logs.id)
SET f2blog_comments.postTitle = f2blog_logs.logTitle

3.更新wp_ID資料放入匯入後的wp_post文章ID
UPDATE (f2blog_comments LEFT JOIN wp_posts ON f2blog_comments.postTitle = wp_posts.post_title)
SET f2blog_comments.wp_ID = wp_posts.ID

4.轉換f2blog_comments時間欄位為varchar屬性
ALTER TABLE `f2blog_comments` CHANGE `postTime` `postTime` VARCHAR( 100 ) NOT NULL DEFAULT '0'

5.轉換f2blog_comments時間欄位的unixtime
UPDATE `f2blog_comments` SET `postTime` = FROM_UNIXTIME(`postTime`)
WHERE `f2blog_comments`.`id` >=1 LIMIT 99999

6.轉換f2blog_comments時間欄位為datetime屬性
ALTER TABLE `f2blog_comments` CHANGE `postTime` `postTime` DATETIME NOT NULL DEFAULT '0000-00-00 00:00:00'

7.整理完畢開始拋轉f2blog→wp
INSERT INTO wp_comments
(comment_post_ID,comment_author,comment_author_email,comment_author_url,comment_author_IP,
comment_date,comment_date_gmt,comment_content,comment_karma,comment_approved,comment_agent,
comment_type,comment_parent,user_id)
SELECT wp_id,author,email,homepage,ip,postTime,postTime,content,0,'1','','','0','0'
FROM f2blog_comments

8.更新wp的wp_post迴響數
UPDATE (wp_posts LEFT JOIN f2blog_logs ON wp_posts.post_title = f2blog_logs.logTitle)
SET wp_posts.comment_count = f2blog_logs.commNums

 

以上步驟4~6的語法是由MeMei Blog裡面搬回Wordpress文章提供

文章發表完才想到忘了補充說明 @@

我的轉換對應方式,其實是以文章標題來做,所以如果碰到你網誌裡面有很多重複性的標題,我指的是完全一模一樣的那種,就比較麻煩了,所以其實這個故事告訴我們,取標題也是很重要的,就算內容差不多,加個日期上去或是分上中下什麼的,把它區別開來,就好了,當然我開始轉資料的時候要先在SQL裡面下語法去判別是否有重複的資料,這點要先提醒給想要使用上面方式轉換的朋友參考…..

Be Sociable, Share!