WordPress数据库维护时常用到 12 个 SQL 语句

虽然通过 WordPress 强大的插件库,你几乎可以干任何的事情,但是有时候需要快速修复一些特定的问题的时候,直接操作数据库可能反而是方便的方法,所以这篇文章就给大家介绍 WordPress 数据库维护时常用到 12 个 SQL 语句。切记一点,操作前记得备份哦!!
*注:下面假设 WordPress 数据库的表的前缀都是默认的“wp_”。

操作方法

  • 01

    1. 直接在数据库中修改密码 密码忘记了是经常的事情,博客密码忘记了进不去,可以直接在数据库里面修改: UPDATE 'wp_users' SET 'user_pass' = MD5('PASSWORD') WHERE 'user_login' ='admin' LIMIT 1; 上面采用了 MySQL 的 MD5() 函数讲密码转成 MD5 Hash。 2. 将日志从一个作者转移到另外一个 假如你的博客的某个作者离开了,或者你不想让“admin”作为作者名,想把日志的作者从一个改到另外一个: UPDATE wp_posts SET post_author=NEW_AUTHOR_ID WHERE post_author=OLD_AUTHOR_ID; *注:你需要知道两个作者的 user id。 3. 删除数据库中日志修订记录和其相关的 post_meta 数据 特别是针对多人博客的时候,日志修订功能很重要,但是日志修订功能也在数据库里面添加了很多的数据,假设你的博客只有 100 篇日志,每篇日志有 10 个日志修订,你的 posts 表中就会有超过 1000 条记录,严重的数据冗余: DELETE a,b,c FROM wp_posts a WHERE a.post_type = 'revision' LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id); *注:上面的 SQL 将删除数据库中所有的日志修订记录和其相关的 meta 信息(自定义字段)。 当然你还可以:彻底屏蔽日志修订功能。 4. 批量删除垃圾留言 如果你一段时间没有管理你的博客,刚好出去休假,没有办法上网,并且博客也没有装类似 Akismet 这类防垃圾留言插件,那么你回来的时候,你会发现博客后台有成千上万条垃圾留言需要你去审核。 这个时候,其实你只需要审核通过正常的留言,然后执行下面这条 SQL: DELETE from wp_comments WHERE comment_approved = '0'; 5. 查找没用的标签 你可能创建一些 WordPress 标签之后,就没有再使用,你可以通过下面这条 SQL 找到它们,然后安全的删除他们。 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; 6. 查找和替换数据 对于熟悉 MySQL 数据库的开发者来说,replace() 这个 MySQL 函数都应该很熟悉,它可以让你指定一个字段,然后替换它里面的字符串,一旦执行,所有这个字段里面的字符串都会被替换。对于 WordPress 博客来说,这个 SQL 则非常实用,它可以让你批量修改某些输入错误,或者某个邮件地址等等。 UPDATE table_name SET field_name = replace( field_name, 'string_to_find', 'string_to_replace' ) ; 替换日志内容中字符串: UPDATE wp_posts SET post_content = replace( post_content, 'string_to_find', 'string_to_replace' ) ; 将某个留言者地址替换下: UPDATE wp_comments SET comment_author_url = REPLACE( comment_author_url, 'http://oldurl.com', 'http://newurl.com' ); 留言者邮箱: UPDATE wp_comments SET comment_author_email = REPLACE( comment_author_email, 'old-email@address.com', 'new-email@address.com' ); 还有一个 WordPress 插件 Search & Replace 还提供一个后台让你更加容易进行批量替换。

  • 02

    7. 获取所有留言者的邮件地址 有时候你想做点不是那么好的事情,比如给所有留言者发下邮件,告诉他们你博客做了一些新的功能,或者写了一个很不错的文章,那么你干坏事情之前,首先要获取所有留言者的邮件地址: SELECT DISTINCT comment_author_email FROM wp_comments; *注:上面的 DISTINCT 让你获取的邮件地址是唯一的,即使这个用户发过好几次留言,也不怕。 不过群发邮件这件事情个人建议还是不要这样做好。 8. 一次把所有插件都停了 网站出现问题了,需要一次把插件全部都先停了之后检测下: UPDATE wp_options SET option_value = '' WHERE option_name = 'active_plugins'; 9. 删除所有标签 有时候,你疯了,想删除博客所有的标签,这个时候你不能单纯的清空 wp_terms 表,因为 wp_terms 表同时存了分类和标签的数据,这样你就把分类信息也删除了,这样你就真的疯了。 DELETE a,b,c FROM database.prefix_terms AS a LEFT JOIN database.prefix_term_taxonomy AS c ON a.term_id = c.term_id LEFT JOIN database.prefix_term_relationships AS b ON b.term_taxonomy_id = c.term_taxonomy_id WHERE ( c.taxonomy = 'post_tag' AND c.count = 0 ); *注:上面 SQL 除了删除标签,还删除了所有标签和标签和日志关联的关系。 10. 列出没用的 post meta wp_postmeta 中的数据是由一些插件或者自定义字段生成的,他是对 wp_posts 表的一种无限的扩展,但是可能由于某种原因,日志被删除了,但是它的 meta 信息还存在 wp_postmeta 表中,下面这条 SQL 将这些没有关联日志的 meta 数据列出: SELECT * FROM wp_postmeta pm LEFT JOIN wp_posts wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL; 11. 关闭旧日志留言功能 厄,对于一些技术博客或者其他博客来说,一些旧日志的内容可能已经过时了,但是一些读者,还是对一些问题“纠缠不清”或者“喋喋不休”,怎么办,把留言关了就好了: 关闭留言: UPDATE wp_posts SET comment_status = 'closed' WHERE post_date < '2009-01-01' AND post_status = 'publish'; 关闭Trackback: UPDATE wp_posts SET ping_status="closed" WHERE post_date < '2009-01-01' AND post_status = 'publish'; 12. 删除所有 url 含有特定字符串的留言 一些留言者很烦,一次留几十个,其链接都指定到一些卖伟哥,起重机,SEO 的站点,烦人的很,一个一个删,又累,下面这条 SQL 可以来帮忙: DELETE from wp_comments WHERE comment_author_url LIKE "%viagra%" ;

  • 03

    简单总结 这些 SQL 语句是直接对数据库进行操作的,如果你不是那么懂数据库或者 SQL 语言,建议你不要这么做,如果你还是比较自信 SQL 操作,建议操作之前备份下数据库。 文章摘自:HostEase中文站

(0)

相关推荐

  • 经典常用SQL语句优化技巧总结大全

    本文实例总结了常用SQL语句优化技巧.分享给大家供大家参考,具体如下: 除了建立索引之外,保持良好的SQL语句编写习惯将会降低SQL性能问题发生. ①通过变量的方式来设置参数 好: stringsql ...

  • SQL语句大全(常用的SQL语句)

    SQL语句大全(常用的SQL语句)

  • Word 2010排版时常用格式设置技巧

    WORD文字处理软件其功能十分强大,自身拥有专业.优雅.美观.省时.易操作等特点,可以说是当前全球使用人群最为广泛的文档工具.下面小编就教你Word2010排版时常用格式设置. Word2010排版时 ...

  • 教你几个EXCEL中编辑时常用的快捷键

    EXCEL时非常常用的一款文字处理软件,那么,编辑时常用的一些快捷键,你掌握了吗???请往下看 一.快速激活特定单元格的操作 01 快速回到表格A1,即第一个单元格. Ctrl+Home.此时,无论你 ...

  • 在Excel中使用SQL语句进行数据筛选的方法介绍

    在Excel中如何使用SQL语句进行数据筛选?我们在使用VBA对数据库进行访问时,利用SQL语句能够方便地实现对数据库的查询.本文使用SQL语句实现多条件查询,使用Select语句从“成绩管理.acc ...

  • ORACLE SQL语句优化技术分析

    为了让更多的新手受益,我抽空把SQL语句优化部分进行了整理,希望大家一起进步。 一、操作符优化1、IN 操作符 用IN写出来的SQL的优点是比较容易写及清晰易懂,这比较适合现代软件开发的风格。但是用I ...

  • 通过Excel生成批量SQL语句(Excel快速生成SQL更新语句)

    们经常会遇到这样的要求:用户给发过来一些数据,要我们直接给存放到数据库里面,有的是Insert,有的是Update等等,少量的数据我们可以采取最原始的办法,也就是在SQL里面用Insert into来 ...

  • sql语句中聚合函数的使用

    我们常用的聚合函数中. count()  求总数 sum()    求和 avg()      求平均 max()和min()  求最大和最小 操作方法 01 我的电脑是Windows7 64位,所以 ...

  • sql语句中like的应用

    最近在写sql语句的过程中,发现的一些问题,希望可以帮到大家. 操作方法 01 like中or的应用:or指或者的意思,如果sql语句中用到这个连接字符,就说明查询的结果只要符合其中一种条件就可以. ...