2010-09-04 76 views
3

用戶1更改密碼簡單的SQL看起來是這樣的:大規模更改密碼

UPDATE `mydb`.`wp_users` 
    SET `user_pass` = MD5('password') 
WHERE `wp_users`.`ID` = 1; 

現在,我有這種格式的文本文件:

user30 pass30 
... 
user2 pass2 
user1 pass1 

如何更改密碼所有這些用戶沒有手動做?也許一些sql命令可以從這個文件中導入它?或者其他一些方法?我使用phpmyadmin,也許我可以以某種方式將這些數據導入這些特定的領域?

我想只導入5以上的密碼。

+0

您是否需要依賴文本文件?看起來你可以在循環中處理這個問題 – 2010-09-04 03:36:34

+0

那麼,我該如何將這些數據導入該循環?我不關心方法,只要我不必手動重新排序這個文件中的任何東西;)。無需文件或自動更改內容就可以了。 – lorem 2010-09-04 03:40:35

回答

4

我不知道任何SQL將導入這樣的更新。但是,你可以將文件導入到一個表(姑且稱之爲「password_changes」)使用用戶名和NEW_PASSWORD字段,然後像做

UPDATE wp_users, password_changes 
SET wp_users.user_pass = md5(password_changes.new_password) 
WHERE wp_users.user_login = password_changes.username 

上面的語句將更改密碼只在你的文件中列出的那些用戶(並因此導入到password_changes表中)。但是,如果您希望確保用戶1-4不會更改,請將AND wp_users.ID >= 5添加到查詢中。

+0

好的,我如何導入它? Phpmyadmin CSV導入? – lorem 2010-09-04 03:41:37

+0

如何僅爲用戶5導入密碼?對不起,我沒有寫我的問題,也許我應該在那裏添加它。 – lorem 2010-09-04 03:43:11

+0

這可以設想做到這一點......但如果文件已經存在並且看起來像這樣,那麼您需要指定這些字段之間用空格而不是逗號分隔。我忘了MyAdmin是否會這樣做。 – cHao 2010-09-04 03:44:13