進入后臺系統(tǒng)設(shè)置-SQL命令行工具
update dede_addonarticle set body=replace(body,'原來的字符’,'替換后的字符’)
update?dede_archives set litpic=replace(litpic,'原來的字符’,'替換后的字符’)
上圖就是執(zhí)行了更改縮略路徑的命令,把縮略圖路徑中的http://www.com全部刪除
]]>在dedeCMS后臺的系統(tǒng)選項中有個“SQL命令行工具”,
直接在運行SQL命令行選中“多行命令”,輸入SQL命令執(zhí)行就OK了。
命令格式:
update (表名) set (要修改的 字段名+修改后的 賦值) ?where (篩選條件)
例1:批量修改已發(fā)文章的發(fā)布時候和投稿時間:
update dede_archives set pubdate=1504195200 where id>=1;
update dede_archives set senddate=1504195200 where id>=1;
SQL命令詳解:
因為網(wǎng)站已經(jīng)關(guān)聯(lián)了數(shù)據(jù)庫,所以數(shù)據(jù)庫名不需要體現(xiàn)了。
update:
update是一個數(shù)據(jù)庫SQL語法用語,用途是更新表中原有數(shù)據(jù),單獨使用時使用where匹配字段(條件篩選)。
表名dede_archives:
這個表,是存儲文章信息的表,dedeCMS的文章信息好像是存放在兩個表中一個是dede_archives 別一個dede_addonarticle(文章內(nèi)容所有表)。
如果你不知道數(shù)據(jù)庫結(jié)構(gòu),可以通過phpMyAdmin去查看SQL的內(nèi)容就可以推斷。
如果phpMyAdmin不會用,或沒權(quán)限使用,就去問度娘吧?;蛴闷渌ぞ卟榭?,反正你知道數(shù)據(jù)庫名和密碼,去折騰吧。
dedeCMS的官網(wǎng)好像有數(shù)據(jù)庫結(jié)構(gòu)介紹,可以去看看。
對了,很多小白說不知道自己的數(shù)據(jù)庫名,雖然這里不會用到,也提一嘴,
可以查看你的備置文件:如dedeCMS的:就去查看dada下的common.inc.php文件。每個CMS都有這樣的配置文件。
字段名pubdate和sendtate:
字段名應(yīng)該是你所選擇的表名下的字段結(jié)構(gòu)。
這里的pubdate是指發(fā)布時間,也可能是發(fā)表時間或更新時間,即我們所能看到的文章發(fā)表的時間。
這里的senddate是指投稿時間,即首次寫入數(shù)據(jù)庫的時間。
這里需要注意的是,你下載的源碼或cms,所發(fā)表文章的時間引用不同,而我們在前端能看到的時間也就會有所不同,
比如,有些站點是引用senddate做為前端頁面能看到的“發(fā)布時間”,那么這個時間可能你在后臺修改內(nèi)容重新發(fā)布后,前端的時間不會被修改成當前時間。
定義不同,引用不同,時間會不會改變也就不同,反正你知道這個理就行了。字段名僅僅是取了個名字而己,具體問題需具體分析。
Unix時間戳:
這里有個概念,時間戳。在SQL中修改的時間要用到時間戳。其實它就是一個以“秒”計數(shù)的值。其它別問我,我也不懂。我是大白。
只需知道在命令中修改時間都要用時間戳方式。
其轉(zhuǎn)換可以看這個工具:http://tool.chinaz.com/Tools/unixtime.aspx
where (篩選條件):
這個就是字面意思,指你要修改哪些數(shù)據(jù)內(nèi)容,用條件語句篩選提取指定內(nèi)容。
像例中的條件是 id>=1,就是我所要修改時間的數(shù)據(jù)需要滿足id號大于1的內(nèi)容。
如果條件是id>=5,那么id號小于等于5的數(shù)據(jù)就沒有被選中修改!
需要注意的是,如上例中:id這個字段名需要在dede_archives表中存在!
像dede_archives表中字段名有:
writer ?作者
source 文章來源
typeid 欄目ID號
……
這上結(jié)條件篩選都可以用上。靈活的很。
擴展能力:
目標:不但dedeCMS數(shù)據(jù)庫你能批理修改,所有的SQL你都可以批量修改!
1、了解對應(yīng)的數(shù)據(jù)庫的結(jié)構(gòu)。
dedeCMS的在后臺系統(tǒng)中的“SQL命令行工具”有個數(shù)據(jù)庫結(jié)構(gòu)查看功能。文本框中的就是所有數(shù)據(jù)庫表名,選中表名點右邊的“查看表結(jié)構(gòu)”可看到第一排的是字段名。后面跟著的是類型長度等定義。
其它CMS可通過phpMyAdmin等工具去查看分析表結(jié)構(gòu)?;蚩聪鄳?yīng)的CMS系統(tǒng)的官方介紹。
還有就是百度,但有些二次開發(fā)的源碼會對數(shù)據(jù)表進行修改添加等,那就要注意了,它就是非標準的了!
2、清楚你所要修改的段字內(nèi)容的數(shù)據(jù)類型。
是字符串型的,你的set后面就要是字符類型,如:set witer ="qoogle" 這是作者,是字符串,要用引號。
是什么類型的數(shù)據(jù)就要匹配相應(yīng)的類型,否則網(wǎng)站變會出錯!
3、命令在哪輸入?
dedeCMS在后臺有,其它的CMS不一定有。那么您可以用phpMyAdmin或其它的數(shù)據(jù)庫管理工具。
dedeCMS后臺的“采集”里的“批量維護”中有個“數(shù)據(jù)庫內(nèi)容替換”,相當于是update命令的白話文了。本人沒用過!不清楚它的“被替換內(nèi)容”是不是一定要寫?否則不能完成一次性批量修改。
4、學(xué)一點點SQL命令操作,對建站還是很有好處的。
……
舉一反三:
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號等于1的文章作者為“baishitou:
update dede_archives set writer="baishitou" where typeid=1;
dede例5:
批量修改所有文章的來源為www.vanhostingweb.com:
update dede_archives set source="www.vanhostingweb.com" 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="baishitou",ource="www.vanhostingweb.com" where typeid=20 or writer="白石頭";
邏輯運算符解釋:
and:是條件1和條件2這兩個條件需要同時滿足才會修改!
or:是只需滿足任何一個都會執(zhí)行修改。
]]>