1

非常に見苦しく乱雑なデータでいっぱいのデータベース テーブルがあります。別のテーブルには、データのよりクリーンなバージョンがあり、ID でリンクされていますが、データの違いを確認するために使用するため、乱雑なデータセットを保持する必要があり、上書きできません。

データを新しいテーブルにマージしようとしています。または、両方のテーブルで単一のクエリを使用し、結果でクリーンなテーブルの結果を優先します。

したがってid=3 uglydata=x7z cleandata=xyz、 の場合はきれいなデータを取得し、cleandatanull の場合は醜いデータを取得します。cleandataMySQL が他のフィールドを上書きすることを期待して、 ASを選択しようとuglydataしましたが、うまくいきませんでした (そうです、奇妙で、うまくいかないと思いました)。

彼らはこれを行う良い方法ですか?

私が考えることができる他の解決策は、最初にきれいなデータから新しいテーブルに挿入し、次に入札が一意であるため、醜いデータから挿入することです。

でも、タイプとかで結果に優先順位を付けられるようになればいいなと思っています。

4

1 に答える 1

4
SELECT IFNULL(cleandata, uglydata)
FROM uglytable
LEFT OUTER JOIN cleantable
ON clean_id = ugly_id
于 2009-01-23T22:00:10.263 に答える