WordPress 站點遷移、域名變更、批量內容修復、安全加固等常見運維場景,往往需要直接操作數據庫。本文精選 10 條高頻實用 SQL,涵蓋作者變更、管理員重命名、修訂版清理、GUID/URL 批量替換、Pingback 清理、CDN 圖片路徑遷移、廢棄標簽識別、密碼重置、Post Meta 批量更新,附執行前備份提醒。
mysqldump --single-transaction --routines --triggers dbname > backup.sql).maintenance 文件或插件),避免寫入衝突UPDATE wp_posts
SET post_author = 'new_author_id'
WHERE post_author = 'old_author_id';
先在後台「用戶」頁查看 ID,或 SELECT ID, user_login FROM wp_users;
UPDATE wp_users
SET user_login = 'NewAdminName'
WHERE user_login = 'admin';
DELETE a, b, c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON a.ID = b.object_id
LEFT JOIN wp_postmeta c ON a.ID = c.post_id
WHERE a.post_type = 'revision';
關聯刪除 wp_term_relationships、wp_postmeta 孤兒數據,徹底釋放空間。
UPDATE wp_posts
SET guid = REPLACE(guid, 'https://old-domain.com', 'https://new-domain.com');
注意:GUID 不應頻繁變更,僅在首次遷移時執行。
UPDATE wp_options
SET option_value = REPLACE(option_value, 'https://old-domain.com', 'https://new-domain.com')
WHERE option_name IN ('home', 'siteurl');
DELETE FROM wp_comments WHERE comment_type = 'pingback';
UPDATE wp_posts
SET post_content = REPLACE(post_content, 'src="https://old-domain.com', 'src="https://cdn.new-domain.com');
同步更新附件 GUID:
UPDATE wp_posts
SET guid = REPLACE(guid, 'https://old-domain.com', 'https://cdn.new-domain.com')
WHERE post_type = 'attachment';
SELECT * FROM wp_terms wt
INNER JOIN wp_term_taxonomy wtt ON wt.term_id = wtt.term_id
WHERE wtt.taxonomy = 'post_tag' AND wtt.count = 0;
UPDATE wp_users
SET user_pass = MD5('new_password')
WHERE user_login = 'your-username';
WordPress 會在下次登錄時自動升級為更強雜湊(phpass)。
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value, 'https://old-domain.com', 'https://new-domain.com');
適用於存儲在 meta_value 中的舊域名鏈接。