MySQL比较和更新,如果不同

时间:2018-05-09 10:21:42

标签: mysql

我有2个表<head> <script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-3.3.1.min.js"></script> </head> users。表cached_users已更新,这是我的活动表。 users是我的第二张表,我每隔15-20分钟更新一次该表。

  

表用户

cached_users
  

表CACHED_USERS

+---------------+---------------+---------------+------------------+
| id            | name          | username      | email            |
+---------------+---------------+---------------+------------------+
| 1             | Johne Doe     | john.doe      | johndoe@mail.com | 
+---------------+---------------+---------------+------------------+
  

我的质询是:

如何检查两个表之间的差异并更新是否有更改?所以我有多行并循环遍历所有+---------------+---------------+---------------+------------------+ | user_id | name | username | email | +---------------+---------------+---------------+------------------+ | 1 | Johne Doe | john.doe | johndoe@mail.com | +---------------+---------------+---------------+------------------+ 行并找到匹配的users行并根据需要进行更新。我在cached_users表中有更多列,所以我不能做“DELETE / INSERT”方法。我需要一个SQL语句来执行此操作。如果您需要更多信息,请随时提出。

1 个答案:

答案 0 :(得分:0)

select * from users union select * from CACHED_USERS

如果计数与用户相同,那么如果不同则意味着没有更新

选择p.id从(选择*来自用户联合选择*来自CACHED_USERS)p group by p.id have count(*)&gt; 1

id不止一个意味着需要更新这些记录。