MySQL數據表中數據的處理方法大家都有所了解,如果MySQL數據表的數據需要批量修改,能否實現呢?答案無疑是肯定的。
在PHPwind 6.0的數據庫裡,它的會員資料存在pw_members裡面,會員帳號正常狀態下這個數據表裡的“yz”字段顯示的值是1即表示已經激活了帳號)。如果需要再次郵件激活,則這個值顯示的內容必須與另一個字段“regdate”的值相同,程序在驗證時自動檢測兩個字段的內容是否完全一樣之後才會進行有效驗證,否則會給出參數錯誤的提示。例如會員UID 1的“regdate”字段內容是1194067635,那麼“yz”字段的值也一樣是1194067635;以此類推,如果會員UID 2的“regdate”字段內容是1175320740,那麼“yz”字段的值也一樣是1175320740...
此時,由於可能的各種原因,“yz”字段的值可能並不是都是1即表示已經激活了帳號)的狀態,如何讓“yz”字段的值和“regdate”字段內容保持一致呢?同時,因為會員資料N多,又如何批量轉換所有會員帳號的這個字段值呢?我用的方法是這樣的
UPDATE table SET 被替換的字段名=被復制的字段名
應用到本文實例: UPDATE pw_members SET yz=regdate
其中“pw_members”是數據表名稱;“被替換的字段名”指的是在“pw_members”中你要修改的那個字段的名稱,這裡是“yz”;而“被復制的字段名”指的是提供字段內容給“yz”字段復制的字段名好拗口喲!)“regdate”;這樣可以批量將每個UID內的“yz”修改並復制成和“regdate”相同的值。而會員在下次登陸時社區就會要求他再次激活郵件帳號。
由於此舉是批量修改,因為將會把包括社區創建者在內的所有賬號都改成未激活,所以當執行完了以後,要立即把包括社區創建者在內不需要激活的賬號改回正常狀態。方法是在pw_members數據表的浏覽狀態下,選擇你要改回正常狀態的會員帳號,點擊“編輯”進入之後找到“yz”字段,將字段的值例如“1194067635”改成“1”,這樣這個會員帳號就恢復正常了;也可以用管理員帳號進入社區管理後台“會員管理”裡將需要的會員ID手動激活。
另外,如何手動將同一數據表內不同字段之間的內容批量轉換,可以參考下面的命令:
UPDATE table set 字段名=REPLACE(字段名,'原字符串','替換的字符串') where 已知的字段名 LIKE '%原字符串%'
應用到本文實例:
UPDATE pw_members set yz=REPLACE(yz,'1','2') where yz LIKE '%1%'
其中“pw_members”是數據表名稱;“字段名”指的是在“pw_members”中你要修改的那個字段的名稱,這裡是“yz”;“原字符串”是字段“yz”現在默認的值“1”;而“替換的字符串”指的是你將要修改的字段“yz”新的默認值“2”。
MySQL分表處理的實現方法
MySQL復制表數據到新表的方法
MySQL多表刪除的實現
MySQL獨立表空間的優缺點
MySQL MyISAM表結構的恢復