【发布时间】:2011-10-25 08:28:50
【问题描述】:
我有两个具有相同表结构但数据不同的 SQLite(MySQL 也可以)数据库,我必须从一个中获取所有行并一一检查它们是否完全(相同的数据)包含在第二个。
我需要这样做以获得最终的是/否/部分报告(在第二步中,在第二个数据库中插入“否”并更新“部分”)。
有人知道是否有“聪明”的方法来做到这一点?
【问题讨论】:
标签: mysql database sqlite comparison matching
我有两个具有相同表结构但数据不同的 SQLite(MySQL 也可以)数据库,我必须从一个中获取所有行并一一检查它们是否完全(相同的数据)包含在第二个。
我需要这样做以获得最终的是/否/部分报告(在第二步中,在第二个数据库中插入“否”并更新“部分”)。
有人知道是否有“聪明”的方法来做到这一点?
【问题讨论】:
标签: mysql database sqlite comparison matching
SELECT COUNT(*) num_mismatch
FROM table1 JOIN table2 ON (..whatever the unique ID you use for matching is...)
WHERE table1.col1 != table2.col1 OR table1.col2 != table2.col2 OR ......etc.
如果 num_mismatch 不为 0,则表示不匹配。您还可以更改 COUNT(*) 以输出不匹配的 ID。也可以使用NOT EXISTS 并在出现不匹配时更快地返回,因为它会在第一次不匹配后停止检查。
【讨论】: