WordPress 常用数据库SQL查询语句大全

在使用WordPress的过程中,我们少不了要对数据库进行修改操作,比如,更换域名、修改附件目录、批量修改文章内容等等。这个时候,使用SQL查询语句可以大大简化我们的工作量。

使用方法:

进入你主机的phpmyadmin,选择你的WordPress数据,点击SQL选项卡,在文本框中输入SQL查询语句,执行!

WordPress SQL查询语句

下面分享一些wordpress常用的SQL查询语句

注:1.在每次使用SQL查询语句前,请务必导出数据库备份!!

2.下面的SQL查询语句,数据库都是使用WordPress默认的 wp_ 表头,请根据自己的实际修改。

1. 删除所有未使用的标签

DELETE a,b,c
 FROM wp_terms AS a
 LEFT JOIN wp_term_taxonomy AS c ON a.term_id = c.term_id
 LEFT JOIN wp_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id
 WHERE c.taxonomy = 'post_tag' AND c.count = 0

2.删除所有文章修订版本(Revisions)以及它们的Meta数据

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'

3. 更改WordPress地址和首页地址

UPDATE wp_options
 SET option_value = replace(option_value, 'http://www.旧网址.com', 'http://www.新网址.com')
 WHERE option_name = 'home' OR option_name = 'siteurl'

4. 更改文章的GUID

UPDATE wp_posts
 SET guid = REPLACE (guid, 'http://www.旧网址.com', 'http://www.新网址.com')

5. 更改正文中的链接地址

UPDATE wp_posts
 SET post_content = REPLACE (post_content, 'http://www.旧网址.com', 'http://www.新网址.com')

6. 更新文章的Meta值

UPDATE wp_postmeta
 SET meta_value = REPLACE (meta_value, 'http://www.旧网址.com', 'http://www.新网址.com')

7. 重设Admin密码

UPDATE wp_users
 SET user_pass = MD5( 'new_password' )
 WHERE user_login = 'admin'

8. 重设admin的用户名

UPDATE wp_users
 SET user_login = 'newname'
 WHERE user_login = 'admin'

9. 将作者a的文章全部转移到作者b

UPDATE wp_posts
 SET post_author = 'b'
 WHERE post_author = 'a'

10. 删除文章的meta标签

DELETE FROM wp_postmeta
 WHERE meta_key = 'your-meta-key'

11. 导出所有评论中的邮件地址

SELECT DISTINCT comment_author_email
 FROM wp_comments

12. 删除所有的Pingback

DELETE FROM wp_comments
 WHERE comment_type = 'pingback'

13. 删除所有的垃圾评论

DELETE FROM wp_comments
 WHERE comment_approved = 'spam'

14. 禁用所有激活的插件

UPDATE wp_options
 SET option_value = ''
 WHERE option_name = 'active_plugins'

15. 罗列所有未使用的Meta标签

SELECT *
 FROM wp_postmeta pm
 LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
 WHERE wp.ID IS NULL

16. 关闭旧文章的留言

UPDATE wp_posts
 SET comment_status = 'closed'
 WHERE post_date < '2009-01-01' AND post_status = 'publish'

17. 更新留言者的网址

UPDATE wp_comments
 SET comment_author_url = REPLACE( comment_author_url, 'http://旧网址.com', 'http://新网址.com' )

18. 更新正文内所有的’target=”_blank”‘为’rel=”nofollow”‘

UPDATE wp_posts
 SET post_content = REPLACE (post_content, 'target="_blank', 'rel="nofollow')

以上18条来自 http://paranimage.com/19-wordpress-sql-hacks/,以后将继续补充。

19.删除未使用的Meta标签

DELETE pm
 FROM wp_postmeta pm
 LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
 WHERE wp.ID IS NULL

20.删除重复的自定义字段(Custom Fields)

delete from wp_postmeta
where meta_id in (
 select *
 from (
 select meta_id
 from wp_postmeta a
 where a.meta_key = 'views'
 and meta_id not in (
 select min(meta_id)
 from wp_postmeta b
 where b.post_id = a.post_id
 and b.meta_key = 'views'
 )
 ) as x
);