織夢(mèng)DEDECMS利用SQL命令行工具批量修改文章來(lái)源、時(shí)間或作者的方法
dedeCMS修改mySQL還是比較方便的,
在dedeCMS后臺(tái)的系統(tǒng)選項(xiàng)中有個(gè)“SQL命令行工具”,
直接在運(yùn)行SQL命令行選中“多行命令”,輸入SQL命令執(zhí)行就OK了。
命令格式:
update (表名) set (要修改的 字段名+修改后的 賦值) ?where (篩選條件)
例1:批量修改已發(fā)文章的發(fā)布時(shí)候和投稿時(shí)間:
update dede_archives set pubdate=1504195200 where id>=1;
update dede_archives set senddate=1504195200 where id>=1;
SQL命令詳解:
因?yàn)榫W(wǎng)站已經(jīng)關(guān)聯(lián)了數(shù)據(jù)庫(kù),所以數(shù)據(jù)庫(kù)名不需要體現(xiàn)了。
update:
update是一個(gè)數(shù)據(jù)庫(kù)SQL語(yǔ)法用語(yǔ),用途是更新表中原有數(shù)據(jù),單獨(dú)使用時(shí)使用where匹配字段(條件篩選)。
表名dede_archives:
這個(gè)表,是存儲(chǔ)文章信息的表,dedeCMS的文章信息好像是存放在兩個(gè)表中一個(gè)是dede_archives 別一個(gè)dede_addonarticle(文章內(nèi)容所有表)。
如果你不知道數(shù)據(jù)庫(kù)結(jié)構(gòu),可以通過(guò)phpMyAdmin去查看SQL的內(nèi)容就可以推斷。
如果phpMyAdmin不會(huì)用,或沒(méi)權(quán)限使用,就去問(wèn)度娘吧?;蛴闷渌ぞ卟榭?,反正你知道數(shù)據(jù)庫(kù)名和密碼,去折騰吧。
dedeCMS的官網(wǎng)好像有數(shù)據(jù)庫(kù)結(jié)構(gòu)介紹,可以去看看。
對(duì)了,很多小白說(shuō)不知道自己的數(shù)據(jù)庫(kù)名,雖然這里不會(huì)用到,也提一嘴,
可以查看你的備置文件:如dedeCMS的:就去查看dada下的common.inc.php文件。每個(gè)CMS都有這樣的配置文件。
字段名pubdate和sendtate:
字段名應(yīng)該是你所選擇的表名下的字段結(jié)構(gòu)。
這里的pubdate是指發(fā)布時(shí)間,也可能是發(fā)表時(shí)間或更新時(shí)間,即我們所能看到的文章發(fā)表的時(shí)間。
這里的senddate是指投稿時(shí)間,即首次寫(xiě)入數(shù)據(jù)庫(kù)的時(shí)間。
這里需要注意的是,你下載的源碼或cms,所發(fā)表文章的時(shí)間引用不同,而我們?cè)谇岸四芸吹降臅r(shí)間也就會(huì)有所不同,
比如,有些站點(diǎn)是引用senddate做為前端頁(yè)面能看到的“發(fā)布時(shí)間”,那么這個(gè)時(shí)間可能你在后臺(tái)修改內(nèi)容重新發(fā)布后,前端的時(shí)間不會(huì)被修改成當(dāng)前時(shí)間。
定義不同,引用不同,時(shí)間會(huì)不會(huì)改變也就不同,反正你知道這個(gè)理就行了。字段名僅僅是取了個(gè)名字而己,具體問(wèn)題需具體分析。
Unix時(shí)間戳:
這里有個(gè)概念,時(shí)間戳。在SQL中修改的時(shí)間要用到時(shí)間戳。其實(shí)它就是一個(gè)以“秒”計(jì)數(shù)的值。其它別問(wèn)我,我也不懂。我是大白。
只需知道在命令中修改時(shí)間都要用時(shí)間戳方式。
其轉(zhuǎn)換可以看這個(gè)工具:http://tool.chinaz.com/Tools/unixtime.aspx
where (篩選條件):
這個(gè)就是字面意思,指你要修改哪些數(shù)據(jù)內(nèi)容,用條件語(yǔ)句篩選提取指定內(nèi)容。
像例中的條件是 id>=1,就是我所要修改時(shí)間的數(shù)據(jù)需要滿(mǎn)足id號(hào)大于1的內(nèi)容。
如果條件是id>=5,那么id號(hào)小于等于5的數(shù)據(jù)就沒(méi)有被選中修改!
需要注意的是,如上例中:id這個(gè)字段名需要在dede_archives表中存在!
像dede_archives表中字段名有:
writer ?作者
source 文章來(lái)源
typeid 欄目ID號(hào)
……
這上結(jié)條件篩選都可以用上。靈活的很。
擴(kuò)展能力:
目標(biāo):不但dedeCMS數(shù)據(jù)庫(kù)你能批理修改,所有的SQL你都可以批量修改!
1、了解對(duì)應(yīng)的數(shù)據(jù)庫(kù)的結(jié)構(gòu)。
dedeCMS的在后臺(tái)系統(tǒng)中的“SQL命令行工具”有個(gè)數(shù)據(jù)庫(kù)結(jié)構(gòu)查看功能。文本框中的就是所有數(shù)據(jù)庫(kù)表名,選中表名點(diǎn)右邊的“查看表結(jié)構(gòu)”可看到第一排的是字段名。后面跟著的是類(lèi)型長(zhǎng)度等定義。
其它CMS可通過(guò)phpMyAdmin等工具去查看分析表結(jié)構(gòu)?;蚩聪鄳?yīng)的CMS系統(tǒng)的官方介紹。
還有就是百度,但有些二次開(kāi)發(fā)的源碼會(huì)對(duì)數(shù)據(jù)表進(jìn)行修改添加等,那就要注意了,它就是非標(biāo)準(zhǔn)的了!
2、清楚你所要修改的段字內(nèi)容的數(shù)據(jù)類(lèi)型。
是字符串型的,你的set后面就要是字符類(lèi)型,如:set witer ="qoogle" 這是作者,是字符串,要用引號(hào)。
是什么類(lèi)型的數(shù)據(jù)就要匹配相應(yīng)的類(lèi)型,否則網(wǎng)站變會(huì)出錯(cuò)!
3、命令在哪輸入?
dedeCMS在后臺(tái)有,其它的CMS不一定有。那么您可以用phpMyAdmin或其它的數(shù)據(jù)庫(kù)管理工具。
dedeCMS后臺(tái)的“采集”里的“批量維護(hù)”中有個(gè)“數(shù)據(jù)庫(kù)內(nèi)容替換”,相當(dāng)于是update命令的白話(huà)文了。本人沒(méi)用過(guò)!不清楚它的“被替換內(nèi)容”是不是一定要寫(xiě)?否則不能完成一次性批量修改。
4、學(xué)一點(diǎn)點(diǎn)SQL命令操作,對(duì)建站還是很有好處的。
……
舉一反三:
dede例2:
所有文章的作者批量修改成baishitou:
update dede_archives set writer="baishitou" where id>=1;
dede例3:
作者為“管理員”的文章的作者批量修改成baishitou:
update dede_archives set writer="baishitou" where writer="管理員";
dede例4:
批量修改欄目ID號(hào)等于1的文章作者為“baishitou:
update dede_archives set writer="baishitou" where typeid=1;
dede例5:
批量修改所有文章的來(lái)源為www.vanhostingweb.com:
update dede_archives set source="www.vanhostingweb.com" where id>=1;
dede例6:
批量多個(gè)字段更新、多個(gè)條件篩選方法:
拿例1來(lái)說(shuō)事:
例1原來(lái)是這的:
update dede_archives set pubdate=1504195200 where id>=1;
update dede_archives set senddate=1504195200 where id>=1;
可改為:注意多個(gè)set值用英文逗號(hào)隔開(kāi)??!逗號(hào),逗號(hào),逗號(hào)!
update dede_archives set pubdate=1504195200,senddate=1504195200 where id>=1;
可去除where篩選條件,即修改整個(gè)dede_archives表的所有pubdate值:
update dede_archives set pubdate=1504195200,senddate=1504195200;
多where條件修改:注意,多個(gè)where值用邏輯運(yùn)算符:and 和 or
update dede_archives set writer="baishitou",ource="www.vanhostingweb.com" where typeid=20 or writer="白石頭";
邏輯運(yùn)算符解釋?zhuān)?/p>
and:是條件1和條件2這兩個(gè)條件需要同時(shí)滿(mǎn)足才會(huì)修改!
or:是只需滿(mǎn)足任何一個(gè)都會(huì)執(zhí)行修改。
1.本站主要是為了記錄工作、學(xué)習(xí)中遇到的問(wèn)題,可能由于本人技術(shù)有限,內(nèi)容難免有紕漏,一切內(nèi)容僅供參考。
2.本站部分內(nèi)容來(lái)源互聯(lián)網(wǎng),如果有圖片或者內(nèi)容侵犯您的權(quán)益請(qǐng)聯(lián)系我們刪除!
3.本站所有原創(chuàng)作品,包括文字、資料、圖片、網(wǎng)頁(yè)格式,轉(zhuǎn)載時(shí)請(qǐng)標(biāo)注作者與來(lái)源。