利用MYSQL语法实现网站内容批量替换之终极方法

以WordPress为例,网站进行了改版,有一些内容代码需要批量更换,一般来说有两种方案,一是使用Better Search Replace插件来查询更改,另一个就是执行数据库SQL命令。由于网站数据过大已经使用不了Better Search Replace插件,所以只能采用MYSQL语法实现网站内容批量替换。
Better Search Replace插件处理出错
(由于wp-posts大于90M,在主机设置下Better Search Replace插件不能使用,提示尝试减少“最大页面大小”)

下面看MYSQL语法实现网站内容批量替换的操作步骤和注意事项:
图片[2]-利用MYSQL语法实现网站内容批量替换之终极方法-墨铺
进入数据库SQL 查询界面如上截图。

以批量修改全站文章内容“张三”为“李四”为例来说明:
图片[3]-利用MYSQL语法实现网站内容批量替换之终极方法-墨铺
内容见截图,点执行即可全站替换,语法如下:

UPDATE wp_posts SET post_content = REPLACE(post_content, '张三' , '李四');

需要重点注意的是,数据库操作要十二万分小心,一个字符也不能多也不能少,否则网站就芭比Q了。

扩展知识:
我们还需要掌握不同的内容存在不同的表里,才能正确执行不同的SQL命令来实现我们的批量替换。第一,命令的掌握,第二,数据库的说明。


在MYSQL中使用替换语句可以整批替换某字段的内容,也可以批量在原字段内容上加上或去掉字符。

命令总解:update 表的名称 set 替换字段=REPLACE(替换字段,原来内容,新内容)

举例说明:

1)批量替换

例一:
把“backupfile”表里“url”的字段内容为“https://minana.cn/”的全部改为“https://imopu.cn/”

update backupfile set url=REPLACE(url,'https://minana.cn/','https://imopu.cn/')

例二:
把“wp_posts”表里的“post_content”字段里的“imopu”全部替换成“minana”

update wp_posts set post_content=REPLACE(post_content,'imopu','minana')

例三:
把“wp_comments”表里的“comment_content”字段里的“imopu”全部替换成“minana”

update wp_comments set comment_content=REPLACE(comment_content,'imopu','minana')

执行完了这段代码之后就会有提示多少条被替换了:

影响列数: 16 (查询花费 0.1297 秒)

2)根据条件增加字段的内容,如把file_number=1的记录的logical_name字段的内容前面加上tmp,后面加上end。

update backupfile set logical_name=REPLACE(logical_name,logical_name,’tmp’+logical_name+’ end ‘) where file_number=1
3)根据条件去掉指定记录的前面2个字符。

update backupfile set logical_name=REPLACE(logical_name,logical_name,SUBSTRING(logical_name,3,len(logical_name)-2)) where file_number=1
4)根据条件去掉指定记录的后面4个字符。

update backupfile set logical_name=REPLACE(logical_name,logical_name,SUBSTRING(logical_name,1,len(logical_name)-4)) where file_number=2
原文地址:
http://www.16hg.com/article.asp?id=181


WordPress 可以说是最精美的博客程序,仅仅只用了 10 张表,就完美的运行代码的编写也很优美,官方提供了大量的参考函数,方便我们进行二次开发和高度自定义,但是首先我们有必要先来了解下,WordPress 数据库的结构以及表字段类型所表示的意思。

按照功能大致分为五类

用户信息: wp_users、wp_usermeta
链接信息: wp_links
文章及评论信息: wp_posts、wp_postmeta、wp_comments
对分类,链接分类,标签管理: wp_term、wp_term_relationships、wp_term_taxonomy
全局设置信息: wp_options

字段类型详解

下面是 WordPress 整个数据库中,每个表的字段、类型功能分析,另参见:WordPress 数据库全解析

wp_categories

用于保存分类相关信息的表。包括了5个字段,分别是:

  • cat_ID – 每个分类唯一的ID号,为一个bigint(20)值,且带有附加属性auto_increment。
  • cat_name – 某个分类的名称,为一个varchar(55)值。
  • category_nicename – 指定给分类的一个便于记住的名字,也就是所谓的slug,这是一个varchar(200)值。
  • category_description – 某个分类的详细说明,longtext型值。
  • category_parent – 分类的上级分类,为一个int(4)值,对应是的当前表中的cat_ID,即wp_categories.cat_ID。无上级分类时,这个值为0。

wp_comments

用于保存评论信息的表。包括了15个字段,分别为:

  • comment_ID – 每个评论的唯一ID号,是一个bigint(20)值。带有附加属性auto_increment。
  • comment_post_ID – 每个评论对应的文章的ID号,int(11)值,等同于wp_posts.ID。
  • comment_author – 每个评论的评论者名称,tinytext值。
  • comment_author_email – 每个评论的评论者电邮地址,varchar(100)值。
  • comment_author_url – 每个评论的评论者网址,varchar(200)值。
  • comment_author_IP – 每个评论的评论者的IP地址,varchar(100)值。
  • comment_date – 每个评论发表的时间,datetime值(是加上时区偏移量后的值)。
  • comment_date_gmt – 每个评论发表的时间,datetime值(是标准的格林尼治时间)。
  • comment_content – 每个评论的具体内容,text值。
  • comment_karma – 不详,int(11)值,默认为0。
  • comment_approved – 每个评论的当前状态,为一个枚举值enum(’0′,’1′,’spam’),0为等待审核,1为允许发布,spam为垃圾评论。默认值为1。
  • comment_agent – 每个评论的评论者的客户端信息,varchar(255)值,主要包括其浏览器和操作系统的类型、版本等资料。
  • comment_type – 不详,varchar(20)值。
  • comment_parent – 某一评论的上级评论,int(11)值,对应wp_comment.ID,默认为0,即无上级评论。
  • user_id – 某一评论对应的用户ID,只有当用户注册后才会生成,int(11)值,对应wp_users.ID。未注册的用户,即外部评论者,这个ID的值为0。

wp_links

用于保存用户输入到Wordpress中的链接(通过Link Manager)的表。共14个字段:

  • link_id – 每个链接的唯一ID号,bigint(20)值,附加属性为auto_increment。
  • link_url – 每个链接的URL地址,varchar(255)值,形式为http://开头的地址。
  • link_name – 单个链接的名字,varchar(255)值。
  • link_image – 链接可以被定义为使用图片链接,这个字段用于保存该图片的地址,为varchar(255)值。
  • link_target – 链接打开的方式,有三种,_blank为以新窗口打开,_top为就在本窗口中打开并在最上一级,none为不选择,会在本窗口中打开。这个字段是varchar(25)值。
  • link_category – 某个链接对应的链接分类,为int(11)值。相当于wp_linkcategories.cat_id。
  • link_description – 链接的说明文字。用户可以选择显示在链接下方还是显示在title属性中。varchar(255)值。
  • link_visible – 该链接是否可以,枚举enum(’Y’,’N’)值,默认为Y,即可见。
  • link_owner – 某个链接的创建人,为一int(11)值,默认是1。(应该对应的就是wp_users.ID)
  • link_rating – 链接的等级,int(11)值。默认为0。
  • link_updated – 链接被定义、修改的时间,datetime值。
  • link_rel – 链接与定义者的关系,由XFN Creator设置,varchar(255)值。
  • link_notes – 链接的详细说明,mediumtext值。
  • link_rss – 该链接的RSS地址,varchar(255)值。

wp_options

用于保存Wordpress相关设置、参数的表,共11个字段。最重要是的option_value字段,里面包括了大量的重要信息。

  • option_id – 选项的ID,bigint(20)值,附加auto_increment属性。
  • blog_id – 不详。或许用在单在用户的WP版本上并不重要吧,或许是针对不同用户的Blog来设置的一个值。int(11)值,默认为0,即当前blog。
  • option_name – 选项名称,varchar(64)值。
  • option_can_override – 该选项是否可被重写、更新,枚举enum(’Y’,’N’)值,默认为Y,即可被重写、更新。
  • option_type – 选项的类型,作用不详,int(11)值,默认为1。
  • option_value – 选项的值,longtext值,这个字段的内容比较重要。Wordpress初始化时就会设定好约70个默认的值,这里暂不介绍。
  • option_width – 选项的宽(?),作用不详。int(11)值,默认为20。
  • option_height – 选项的高(?),作用不详。int(11)值,默认为8。
  • option_description – 针对某个选项的说明,tinytext值。
  • option_admin_level – 设定某个选项可被操纵的用户等级(详情见我的相关文章),int(11)值,默认为1。
  • autoload – 选项是否每次都被自动加载,枚举enum(’yes’,’no’)值,默认为yes。

wp_postmeta

用于保存文章的元信息(meta)的表,四个字段:

  • meta_id – 元信息ID,bigint(20)值,附加属性为auto_increment。
  • post_id – 文章ID,bigint(20)值,相当于wp_posts.ID。
  • meta_key – 元信息的关键字,varchar(255)值。
  • meta_value – 元信息的值,text值。

这些内容主要是在文章及页面编辑页(Write Post, Write Page)的”Add a new custom field to this post(page):”下进行设定的。meta_key就对应名为”key”的下拉列表中的项,而值由用户自己填上(某些时候,wp也会自动加入,如文 章中有的音频媒体)。

wp_posts

用于保存你所有的文章(posts)的相关信息的表,非常的重要。一般来讲,它存储的数据是最多的。一共包括了21个字段。

  • ID – 每篇文章的唯一ID,bigint(20)值,附加属性auto_increment。
  • post_author – 每篇文章的作者的编号,int(4)值,应该对应的是wp_users.ID。
  • post_date – 每篇文章发表的时间,datetime值。它是GMT时间加上时区偏移量的结果。
  • post_date_gmt – 每篇文章发表时的GMT(格林威治)时间,datetime值。
  • post_content – 每篇文章的具体内容,longtext值。你在后台文章编辑页面中写入的所有内容都放在这里。
  • post_title – 文章的标题,text值。
  • post_category – 文章所属分类,int(4)值。
  • post_excerpt – 文章摘要,text值。
  • post_status – 文章当前的状态,枚举enum(’publish’,’draft’,’private’,’static’,’object’)值,publish为已 发表,draft为草稿,private为私人内容(不会被公开) ,static(不详),object(不详)。默认为publish。
  • comment_status – 评论设置的状态,也是枚举enum(’open’,’closed’,’registered_only’)值,open为允许评论,closed为不允 许评论,registered_only为只有注册用户方可评论。默认为open,即人人都可以评论。
  • ping_status – ping状态,枚举enum(’open’,’closed’)值,open指打开pingback功能,closed为关闭。默认值是open。
  • post_password – 文章密码,varchar(20)值。文章编辑才可为文章设定一个密码,凭这个密码才能对文章进行重新强加或修改。
  • post_name – 文章名,varchar(200)值。这通常是用在生成permalink时,标识某篇文章的一段文本或数字,也即post slug。
  • to_ping – 强制该文章去ping某个URI。text值。
  • pinged – 该文章被pingback的历史记录,text值,为一个个的URI。
  • post_modified – 文章最后修改的时间,datetime值,它是GMT时间加上时区偏移量的结果。
  • post_modified_gmt – 文章最后修改的GMT时间,datetime值。
  • post_content_filtered – 不详,text值。
  • post_parent – 文章的上级文章的ID,int(11)值,对应的是wp_posts.ID。默认为0,即没有上级文章。
  • guid – 这是每篇文章的一个地址,varchar(255)值。默认是这样的形式: http://your.blog.site/?p=1,如果你形成permalink功能,则通常会是: 你的Wordpress站点地址+文章名。
  • menu_order – 不详,int(11)值,默认为0。
  • post_type – 文章类型,具体不详,varchar(100)值。默认为0。
  • post_mime_type – 不详。varchar(100)值。
  • comment_count – 评论计数,具体用途不详,bigint(20)值。

wp_usermeta

用于保存用户元信息(meta)的表,共4个字段:

  • umeta_id – 元信息ID,bigint(20)值,附加属性auto_increment。
  • user_id – 元信息对应的用户ID,bigint(20)值,相当于wp_users.ID。
  • meta_key – 元信息关键字,varchar(255)值。
  • meta_value – 元信息的详细值,longtext值。

wp_users

用于保存Wordpress使用者的相关信息的表。WP官方对2.0.2版本中该表的情况的说明有些矛盾(称有22个字段,但详细的列表中只有11个),所以这里只能列出11个字段进行说明:

  • ID – 用户唯一ID,bigint(20)值,带附加属性auto_increment。
  • user_login – 用户的注册名称,varchar(60)值。
  • user_pass – 用户密码,varchar(64)值,这是经过加密的结果。好象用的是不可逆的MD5算法。
  • user_nicename – 用户昵称,varchar(50)值。
  • user_email – 用户电邮地址,varchar(100)值。
  • user_url – 用户网址,varchar(100)值。
  • user_registered – 用户注册时间,datetime值。
  • user_level – 用于等级,int(2)值,可以是0-10之间的数字,不同等级有不同的对WP的操作权限。
  • user_activation_key – 用户激活码,不详。varchar(60)值。
  • user_status – 用户状态,int(11)值,默认为0。
  • display_name – 来前台显示出来的用户名字,varchar(250)值。

原文链接https://baijiahao.baidu.com/s?id=1708209966002801402&wfr=spider&for=pc

© 版权声明
THE END
喜欢请点赞支持!
点赞11 分享