2

MySQL データベースに入力するために使用される毎日のフィードを取得します。新しいフィードを以前のフィードと比較して、何が変更、追加、または削除されたかを確認したいと思います。私はMySQLとPHPで働いています。MySQL でこれを実現するにはどうすればよいでしょうか? MySQLテーブルである以前のフィードを取得し、それをMySQLテーブルとしても保存されている新しいフィードと比較する必要があると考えています。しかし、新しい MySQL テーブルで見つからない行を取得するにはどうすればよいでしょうか? ありがとう!

4

2 に答える 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 に答える