MySQL データベースに入力するために使用される毎日のフィードを取得します。新しいフィードを以前のフィードと比較して、何が変更、追加、または削除されたかを確認したいと思います。私はMySQLとPHPで働いています。MySQL でこれを実現するにはどうすればよいでしょうか? MySQLテーブルである以前のフィードを取得し、それをMySQLテーブルとしても保存されている新しいフィードと比較する必要があると考えています。しかし、新しい MySQL テーブルで見つからない行を取得するにはどうすればよいでしょうか? ありがとう!
質問する
629 次
2 に答える
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
)
楽しみ!
于 2013-03-21T06:08:42.790 に答える
0
左側に「古い」値 (追加の場合は null) を表示し、右側 (削除の場合は null) に新しい値を表示する、完全な外部結合ソリューションを使用します。両側に値が設定されている場合は、行が変更されていないか、値が変更されていることを意味します。
select key, o.value1, o.value2, m.value1, m.value2
from original o full outer join modifications m using(key)
于 2013-03-21T09:54:21.067 に答える