我有 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/