過去 10 年來,MySQL 資料庫以令人難以置信的速度在網路上流行起來。每一個 WordPress 部落格都由 MySQL 資料庫驅動,儲存部落格日誌、設定、評論等內容。
面對 WordPress,雖然外掛或編碼技巧可以解決一些問題、完成某些任務,但是有時除了透過 phpMyAdmin 或 SSH 執行 SQL 語句外,你別無選擇。下面讓我們來看看 WordPress 實用 SQL 語句集錦。本系列文章的每個篇章都嚴格按照提出問題、解決問題、解釋說明的思路撰寫,以使讀者真正瞭解掌握解決問題的方法,達到舉一反三的效果。
1 、建立資料庫備份

問題。儘管本文論及的所有語句已經過測試,我們仍然應當先備份 MySQL 資料庫,再嘗試執行這些語句。
方案。要手工建立一個 WordPress 資料庫備份,請按照下列步驟進行:
1 、登入 phpMyAdmin,選擇 WordPress 資料庫。
2 、接著在橫向列示的選單上點選 「匯出」 按鈕。
3 、選擇壓縮方法 (我個人習慣使用 gzip),然後點選 「執行」 按鈕。
4 、瀏覽器會提示是否需要下載備份檔案。選擇 「是」,然後將該檔案儲存在硬碟驅動器上。
解釋。需要注意的是,建立 WordPress 資料庫備份的任務,可以透過 WP-DB-Backup 外掛更容易地實現。每一個 WordPress 使用者都應該安裝此外掛,並定期進行資料備份。 (譯註:此提示雖顯絮叨卻是部落格作者都應遵循的準則。因為主題或外掛沒了都可以再安裝,但資料沒了那麼所有過往的努力都將付諸東流。)
2 、批次刪除日誌修訂記錄

問題。修訂版本是 WordPress 2.6 引入的功能,該功能雖然在某些場景下比較有用,但也增加了 MySQL 資料庫的大小。儘管我們可以手動刪除文章修訂版本,但這是非常漫長而枯燥的工作。
方案。這個問題的解決方法很簡單:我們透過執行簡單的 SQL 查詢來批次刪除日誌修訂記錄。如果你有很多的日誌,其結果可能令人難以置信:資料庫的大小將減少一半!
登入 phpMyAdmin,選擇 WordPress 資料庫。
點選 「SQL」 按鈕。將以下程式碼貼上到 SQL 命令視窗:
| DELETE FROM wp_posts WHERE post_type = "revision"; |
大功告成。最終節省的資料庫空間大小取決於部落格文章數的多少。
解釋。 wp_posts 表有一個名為 post_type 的欄位。此欄位有幾個取值,如 「post」 、 「page」 或 「revision」 。想要去除文章修訂版本,只需執行一個命令以刪除 wp_posts 表中,post_type 欄位等於 「revision」 的記錄。
接下來我們分析關於批次刪除待稽核評論和變更日誌歸屬的 SQL 命令。
3 、瞬間刪除 5000 條垃圾評論

問題。真人真事:我的一個朋友最近搭建了自己的部落格,並開始在網上四處推廣。經過幾個星期的緊張工作,他休了幾天假沒有上網。
回到家裡他看了看部落格,結果看到... 超過 5000 條待稽核評論!當然,其中大多數是垃圾評論,本來他打算逐一檢驗,以確保不會刪掉一般讀者的有效評論。
方案。令人高興的是,友人把他的垃圾留言問題告訴了我。在我向他展示下面這條有用的 SQL 語句前,他已經花了 45 分鐘手工刪除垃圾評論。
登入 phpMyAdmin,選擇 WordPress 資料庫。
點選 「SQL」 按鈕。將以下程式碼貼上到 SQL 命令視窗:
| DELETE from wp_comments WHERE comment_approved = '0'; |
向垃圾評論說再見!享受未受垃圾評論侵擾的資料庫吧!
解釋。 wp_comments 表包含一個名為 comment_approved 的欄位,取布林值 (1 或 0) 。透過稽核的評論該值為 1,待稽核的評論取 0 值。透過執行上面的命令,我們刪除了全部待稽核評論。
謹慎行事。如果你有一大堆垃圾留言需要刪除,這種解決方案是非常有用的,但也可能刪掉未經稽核的有效評論。因此,如果你還沒用上 Akismet,馬上安裝它以阻止垃圾評論的騷擾。