我在使用离线帐户更新在线数据库时出现问题。不要问......如果你得到我的漂移,那就是Charlie-Foxtrot,但我必须找到一个解决方案。
我需要发生以下逻辑,这远远超出了我的技能。导入表中大约有28,000条记录,成员和member_data表中有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 :(得分:0)
首先,您可以在“其他非标准实施”部分中查看此链接:
如果我正确地将我的TSQL经验转换为MySQL的风格,那么您将需要所谓的INSERT ... ON DUPLICATE KEY UPDATE语句。创始人:
MySQL Documentation for INSERT...ON DUPLICATE KEY UPDATE
这样做实际上是在发生密钥违规之前插入记录。在您的情况下,帐号会使记录唯一。当找到密钥违规(匹配记录)时,您可以通过更新语句指定要发生的内容。
我希望这会对你有所帮助。