2012-12-05 21 views
0

我在使用脫機帳戶更新在線數據庫時遇到了問題。不要問......這是一個查理 - 福克斯特羅特,如果你得到我的漂移,但我必須找到一個解決方案。通過一個mysql表來查找並更新其中匹配的地方

我需要發生以下邏輯,這遠遠超出了我的技能組合。導入表中大約有28,000條記錄,成員和成員數據表中大約有2,400條記錄 - 如果這有幫助的話。我希望有一個功能強大的善良功夫可以幫助我。

的表格:

members 
    id 
    group_id 
member_data 
    id 
    account 
    phone 
    modified 
import 
    account 
    phone 

所需的邏輯:

Loop through each record in import table and search for match between import.account and member_data.account. 

If Match: 
    Update members.group_id to '5'. 
    Update member_data.modified to '1'. 

If No Match: 
    Search for match between import.phone and member_data.phone. 
     If Match: 
      Update member_data.account with import.account of the matched record. 
      Update members.group_id to '5'. 
      Update member_data.modified to '1'. 

回答

0

作爲開始,你可以看看這個鏈接的 「其它的非標準實現」 一節中:

Merge (SQL)

如果我正確翻譯我的TSQL經驗到MySQL的風格,那麼你將需要什麼叫做INSERT ... ON DUPLICATE KEY UPDATE語句。方正在這裏:

MySQL Documentation for INSERT...ON DUPLICATE KEY UPDATE

這是什麼做的,直到一鍵衝突發生時essentialy插入記錄。在你的情況下,帳號使記錄具有獨特性。當它發現密鑰違規(匹配記錄)時,可以通過更新語句指定想要發生的事情。

我希望這可以幫助你走下一段路。

相關問題