我们获得用于填充MySQL数据库的每日Feed。我想将新的Feed与之前的Feed进行比较,以查看更改,添加甚至删除的内容。我在MySQL和PHP工作。如何才能在MySQL中实现这一目标?我认为它应该采用以前的MySQL表,并将其与新的feed进行比较,新的feed也存储为MySQL表。但是我该怎么做才能检索那些在新MySQL表中找不到的行呢?谢谢!
答案 0 :(得分:0)
这可能会对您有所帮助:
SELECT a.*
FROM `OLD_TABLE_NAME` a
WHERE ROW(a.col1, a.col2, …) NOT IN
(
SELECT *
FROM NEW_TABLE_NAME
)
UNION ALL
SELECT b.*
FROM `NEW_TABLE_NAME` b
WHERE ROW(b.col1, b.col2, …) NOT IN
(
SELECT *
FROM OLD_TABLE_NAME
)
享受!
答案 1 :(得分:0)
我会选择完整的外连接解决方案,在左侧显示“旧”值(在添加的情况下为null),在右侧显示新值(在删除时为null)。如果双方都已填充,则表示le line未更改或值已更改。
select key, o.value1, o.value2, m.value1, m.value2
from original o full outer join modifications m using(key)