MySQL數(shù)據(jù)表字段內(nèi)容的批量修改、清空、復(fù)制等更新命令

MySQL數(shù)據(jù)表字段內(nèi)容的批量修改、清空、復(fù)制等更新命令,需要的朋友可以參考下。

最近遇到一點(diǎn)麻煩事,新安裝的PHPwind6.0正式版社區(qū)在導(dǎo)入之前的會(huì)員帳號(hào)資料時(shí),發(fā)現(xiàn)很多會(huì)員的mail地址貌似胡亂填寫的,之前的PHPwind5.5版本沒有開啟mail地址驗(yàn)證功能,所以估計(jì)很多用戶胡亂填寫了email地址,所以我就想要求所有正式會(huì)員重新驗(yàn)證郵件地址來重新激活會(huì)員帳號(hào),結(jié)果發(fā)現(xiàn)社區(qū)根本沒有這項(xiàng)功能,掙扎了N久,數(shù)據(jù)庫的會(huì)員資料數(shù)據(jù)表被反復(fù)安裝=刪除了好幾遍,總算找到了一個(gè)批量修改的方法。

不過這樣操作會(huì)連社區(qū)創(chuàng)建者的賬號(hào)都改成未激活,所以要是不清楚還真的不敢動(dòng)手。

在PHPwind6.0的MySql數(shù)據(jù)庫里,它的會(huì)員資料存在pw_members里面,會(huì)員帳號(hào)正常狀態(tài)下這個(gè)數(shù)據(jù)表里的“yz”字段顯示的值是1(即表示已經(jīng)激活了帳號(hào))。如果需要再次郵件激活,則這個(gè)值顯示的內(nèi)容必須與另一個(gè)字段”regdate”的值相同,程序在驗(yàn)證時(shí)自動(dòng)檢測兩個(gè)字段的內(nèi)容是否完全一樣之后才會(huì)進(jìn)行有效驗(yàn)證,否則會(huì)給出參數(shù)錯(cuò)誤的提示。例如會(huì)員UID 1的“regdate”字段內(nèi)容是1194067635,那么“yz”字段的值也一樣是1194067635;以此類推,如果會(huì)員UID 2的“regdate”字段內(nèi)容是1175320740,那么“yz”字段的值也一樣是1175320740…

此時(shí),由于可能的各種原因,“yz”字段的值可能并不是都是1(即表示已經(jīng)激活了帳號(hào))的狀態(tài),如何讓“yz”字段的值和“regdate”字段內(nèi)容保持一致呢?同時(shí),因?yàn)闀?huì)員資料N多,又如何批量轉(zhuǎn)換所有會(huì)員帳號(hào)的這個(gè)字段值呢?

我用的方法是這樣的

UPDATE table SET 被替換的字段名=被復(fù)制的字段名

應(yīng)用到本文實(shí)例:
UPDATE pw_members SET yz=regdate

其中“pw_members”是數(shù)據(jù)表名稱;“被替換的字段名”指的是在“pw_members”中你要修改的那個(gè)字段的名稱,這里是“yz”;而“被復(fù)制的字段名”指的是提供字段內(nèi)容給“yz”字段復(fù)制的字段名(好拗口喲!)“regdate”;這樣可以批量將每個(gè)UID內(nèi)的“yz”修改并復(fù)制成和“regdate”相同的值。而會(huì)員在下次登陸時(shí)社區(qū)就會(huì)要求他再次激活郵件帳號(hào)。

由于此舉是批量修改,因?yàn)閷?huì)把包括社區(qū)創(chuàng)建者在內(nèi)的所有賬號(hào)都改成未激活,所以當(dāng)執(zhí)行完了以后,要立即把包括社區(qū)創(chuàng)建者在內(nèi)不需要激活的賬號(hào)改回正常狀態(tài)。方法是在pw_members數(shù)據(jù)表的瀏覽狀態(tài)下,選擇你要改回正常狀態(tài)的會(huì)員帳號(hào),點(diǎn)擊“編輯”進(jìn)入之后找到“yz”字段,將字段的值例如“1194067635”改成“1”,這樣這個(gè)會(huì)員帳號(hào)就恢復(fù)正常了;也可以用管理員帳號(hào)進(jìn)入社區(qū)管理后臺(tái)“會(huì)員管理”里將需要的會(huì)員ID手動(dòng)激活。

另外,如何手動(dòng)將同一數(shù)據(jù)表內(nèi)不同字段之間的內(nèi)容批量轉(zhuǎn)換,可以參考下面的命令:

UPDATE table set 字段名=REPLACE(字段名,’原字符串’,’替換的字符串’) where 已知的字段名 LIKE ‘%原字符串%’

應(yīng)用到本文實(shí)例:
UPDATE pw_members set yz=REPLACE(yz,’1′,’2′) where yz LIKE ‘%1%’

其中“pw_members”是數(shù)據(jù)表名稱;“字段名”指的是在“pw_members”中你要修改的那個(gè)字段的名稱,這里是“yz”;“原字符串”是字段“yz”現(xiàn)在默認(rèn)的值“1”;而“替換的字符串”指的是你將要修改的字段“yz”新的默認(rèn)值“2”。

如何批量將某個(gè)或某幾個(gè)字段的數(shù)值清空?

UPDATE table set 字段名= ‘0’ 清空字段數(shù)值

應(yīng)用到本文實(shí)例:
UPDATE pw_memberdata set money= ‘0’ 清空金幣
UPDATE pw_memberdata set rvrc= ‘0’ 清空威望
UPDATE pw_memberdata set credit= ‘0’ 清空貢獻(xiàn)值
UPDATE pw_memberdata set currency= ‘0’ 清空交易幣
UPDATE pw_memberinfo set deposit= ‘0’ 清空活期存款
UPDATE pw_memberinfo set ddeposit= ‘0’ 清空定期存款
UPDATE pw_membercredit set value= ‘0’ 清空好評度

閃電博客評:文章網(wǎng)上找的,我的實(shí)際用法
mysql 更新(清空)某表某一字段內(nèi)容:update 表名 set 字段名=”,并沒有0。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊5 分享