mysql - 比较 2 个相同的 MySQL 表

标签 mysql

我有 2 个相同的表,分别称为 LIVE 和 BACKUP。

我试图做的是将 LIVE 记录与其等效的 BACKUP 记录进行比较,看它们是否匹配。每次访问单个 LIVE 记录时都需要进行此检查。 即我只想比较第 59 条记录(作为示例)而不是 LIVE 表中的所有记录?

目前,我可以通过简单地逐个字段地比较 LIVE 记录和它的等效 BACKUP 记录来做我想做的事。

但是,我想知道是否可以做一个简单的“比较实时记录 A 和备份记录 A”。

我不需要知道差异是什么,甚至不需要知道它们出现在哪些领域。我只需要知道关于两个记录是否匹配的简单的是/否。

这样的事情是否可能,或者我是否坚持逐个字段地比较表格?

非常感谢,

皮特

最佳答案

这是一个 hack,假设列真的都是一样的:

select count(*)
from ((select *
       from live
       where record = 'A'
      ) union
      (select *
       from backup
       where record = 'A'
      )
     ) t

如果它们相同,则返回“1”;如果存在多个记录,则返回“2”。如果要确保两个值不在同一个表中,请使用修改后的形式:

select count(distinct which)
from ((select 'live' as which, l.*
       from live .
       where record = 'A'
      ) union
      (select 'backup' as which, b.*
       from backup b
       where record = 'A'
      )
     ) t;

还有。 . .注意 union 的使用。此处的重复删除是有意为之的。

关于mysql - 比较 2 个相同的 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17529482/

相关文章:

php - 如何获取MYSQL相关搜索结果

mysql - 选择用户每周至少出现一次,持续数周

php - 为什么警告 : mysqli_query(): Couldn't fetch mysqli?

c# - 带有 MySQL DB 的 .NET Core 2.0 WebAPI - dotnet publish - 运行 .dll 时连接字符串为空

android - 使用android将数据推送到云端

python - VSCode,为什么我在尝试将 mysqlclient 安装到 django 项目时出现错误

mysql - 在 Web 托管提供商的数据库中更改 `auto_increment_increment`

PHP 查询 : How to input data into 2 columns column on the same table at different times

php PDO prepare() 非对象错误

java - 主机 'X' 由于许多连接错误而被阻止