0

我在使用离线帐户更新在线数据库时遇到问题。别问……如果你明白我的意思,那就是查理狐步舞,但我必须找到一个解决方案。

我需要发生以下逻辑,这远远超出了我的技能范围。导入表中大约有 28,000 条记录,members 和 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'.
4

1 回答 1

0

首先,您可以在“其他非标准实现”部分查看此链接:

合并 (SQL)

如果我正确地将我的 TSQL 经验转换为 MySQL 的风格,那么您将需要所谓的 INSERT...ON DUPLICATE KEY UPDATE 语句。这里的创始人:

MySQL 文档 INSERT...ON DUPLICATE KEY UPDATE

这实际上是在发生密钥冲突之前插入记录。在您的情况下,帐号使记录独一无二。当它发现密钥违规(匹配记录)时,您可以通过更新语句指定您希望发生的事情。

我希望这对您有所帮助。

于 2012-12-05T17:06:09.307 回答