织梦建站系统dedeCMS批量修改替换已发表文章的作者或来源或发布时间的方法

导读:


1、需要命令的,直接读命令,其它可跳过。

2、小白们 and 大白们,细细读一读,会对SQL和织梦后台的SQL操用增加理解。


前言:


网络中充次着各种cms系统,

这让建站变的像吃个家常便饭一样的简单,这是好事。

有时候为了方便,下载的整站具有原始数据的(文章),

如果能直接用上,那自然是一件愉悦人心的事,

但往往这些数据会有些差强人意的地方,

比如发布作者、发布时间、文章来源等等具有历史个性烙印的东东,

能修改吗?能!所有的CMS系统都据有类似的功能,

但只能是单篇单篇的修改,苦力活儿!

(知识点补充:什么是CMS? CMS是Content Management System的缩写,意为"内容管理系统"。)

怎么才能批量修改发布作者、发布时间、文章来源等信息呢?

答案是:命令方式修改数据库:mySQL


正文:


dedeCMS修改mySQL还是比较方便的,

在dedeCMS后台的系统选项中有个“SQL命令行工具”,

直接在运行SQL命令行选中“多行命令”,输入SQL命令执行就OK了。

命令格式:

update (表名) set (要修改的 字段名+修改后的 赋值)  where (筛选条件)

例1:批量修改已发文章的发布时候和投稿时间:

update dede_archives set pubdate=1504195200 where id>=1;
update dede_archives set senddate=1504195200 where id>=1;

SQL命令详解:

因为网站已经关联了数据库,所以数据库名不需要体现了。

update:

update是一个数据库SQL语法用语,用途是更新表中原有数据,单独使用时使用where匹配字段(条件筛选)。


表名dede_archives:

这个表,是存储文章信息的表,dedeCMS的文章信息好像是存放在两个表中一个是dede_archives 别一个dede_addonarticle(文章内容所有表)。

如果你不知道数据库结构,可以通过phpMyAdmin去查看SQL的内容就可以推断。

如果phpMyAdmin不会用,或没权限使用,就去问度娘吧。或用其它工具查看,反正你知道数据库名和密码,去折腾吧。

dedeCMS的官网好像有数据库结构介绍,可以去看看。

对了,很多小白说不知道自己的数据库名,虽然这里不会用到,也提一嘴,

可以查看你的备置文件:如dedeCMS的:就去查看dada下的common.inc.php文件。每个CMS都有这样的配置文件。


字段名pubdate和sendtate:

字段名应该是你所选择的表名下的字段结构。

这里的pubdate是指发布时间,也可能是发表时间或更新时间,即我们所能看到的文章发表的时间。

这里的senddate是指投稿时间,即首次写入数据库的时间。

这里需要注意的是,你下载的源码或cms,所发表文章的时间引用不同,而我们在前端能看到的时间也就会有所不同,

比如,有些站点是引用senddate做为前端页面能看到的“发布时间”,那么这个时间可能你在后台修改内容重新发布后,前端的时间不会被修改成当前时间。

定义不同,引用不同,时间会不会改变也就不同,反正你知道这个理就行了。字段名仅仅是取了个名字而己,具体问题需具体分析。

Unix时间戳:

这里有个概念,时间戳。在SQL中修改的时间要用到时间戳。其实它就是一个以“秒”计数的值。其它别问我,我也不懂。我是大白。

只需知道在命令中修改时间都要用时间戳方式。

其转换可以看这个工具:http://tool.chinaz.com/Tools/unixtime.aspx


where (筛选条件):

这个就是字面意思,指你要修改哪些数据内容,用条件语句筛选提取指定内容。

像例中的条件是 id>=1,就是我所要修改时间的数据需要满足id号大于1的内容。

如果条件是id>=5,那么id号小于等于5的数据就没有被选中修改!

需要注意的是,如上例中:id这个字段名需要在dede_archives表中存在!

像dede_archives表中字段名有:

writer  作者

source 文章来源

typeid 栏目ID号

……

这上结条件筛选都可以用上。灵活的很。


扩展能力:

目标:不但dedeCMS数据库你能批理修改,所有的SQL你都可以批量修改!

1、了解对应的数据库的结构。

dedeCMS的在后台系统中的“SQL命令行工具”有个数据库结构查看功能。文本框中的就是所有数据库表名,选中表名点右边的“查看表结构”可看到第一排的是字段名。后面跟着的是类型长度等定义。

其它CMS可通过phpMyAdmin等工具去查看分析表结构。或看相应的CMS系统的官方介绍。

还有就是百度,但有些二次开发的源码会对数据表进行修改添加等,那就要注意了,它就是非标准的了!

2、清楚你所要修改的段字内容的数据类型。

是字符串型的,你的set后面就要是字符类型,如:set witer ="qoogle" 这是作者,是字符串,要用引号。

是什么类型的数据就要匹配相应的类型,否则网站变会出错!

3、命令在哪输入?

dedeCMS在后台有,其它的CMS不一定有。那么您可以用phpMyAdmin或其它的数据库管理工具。

dedeCMS后台的“采集”里的“批量维护”中有个“数据库内容替换”,相当于是update命令的白话文了。本人没用过!不清楚它的“被替换内容”是不是一定要写?否则不能完成一次性批量修改。

4、学一点点SQL命令操作,对建站还是很有好处的。

……


举一反三:

dede例2:

所有文章的作者批量修改成qoogle:

update dede_archives set writer="qoogle" where id>=1;

dede例3:

作者为“管理员”的文章的作者批量修改成qoogle:

update dede_archives set writer="qoogle" where writer="管理员";

dede例4:

批量修改栏目ID号等于1的文章作者为“qoogle:

update dede_archives set writer="qoogle" where typeid=1;

dede例5:

批量修改所有文章的来源为www.qoogle.cn:

update dede_archives set source="www.qoogle.cn" where id>=1;

dede例6:

批量多个字段更新、多个条件筛选方法:

拿例1来说事:

例1原来是这的:

update dede_archives set pubdate=1504195200 where id>=1;
update dede_archives set senddate=1504195200 where id>=1;

可改为:注意多个set值用英文逗号隔开!!逗号,逗号,逗号!

update dede_archives set pubdate=1504195200,senddate=1504195200 where id>=1;


可去除where筛选条件,即修改整个dede_archives表的所有pubdate值:

update dede_archives set pubdate=1504195200,senddate=1504195200;


多where条件修改:注意,多个where值用逻辑运算符:and 和 or 

update dede_archives set writer="qoogle",ource="www.qoogle.cn" where typeid=20 or writer="白娘子";

逻辑运算符解释:

and:是条件1和条件2这两个条件需要同时满足才会修改!

or:是只需满足任何一个都会执行修改。



[qoogle原创]

如果文章对您有帮助|有启发|有共鸣|有“爽了”,请随意打赏。您的支持是我的动力和价值的体现。

----------我不是街头卖艺者,但我渴望被打赏,博客要生存下去不容易。
----------我不是酒店服务生,但我渴望被打赏,博主也有妻儿子女一家子人。
----------我不是乞丐叫花子,但我渴望被打赏,渴望被打赏的价值认同感。
----------我不是建筑搬运工,但我渴望被打赏,我是蜜蜂我阅读/挑选/整合/转载/传播。
----------我不是作家或教授,但我渴望被打赏,咱中国人也能主动为知识/为受益而付费。

感谢土豪的打赏!


一码支持:微信/支付宝

打赏qoogle的二维码


分享,也是您对我的热力支持。谢谢!

内容版权声明:除转载分类下的文章来源网络(直转或整合而成),其它皆为本站原创文章。

转载注明出处:http://qoogle.cn/?id=43

发表评论(不用注册哟!)

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。