以前のDBAは2.4Mエントリを持つ非リレーショナルテーブルを管理していました。すべてが一意のIDです。しかし、例えば、各レコードで異なるデータとの重複レコードがあります。MySQLマルチ重複レコードマージ
+---------+---------+--------------+----------------------+-------------+
| id | Name | Address | Phone | Email | LastVisited |
+---------+---------+--------------+---------+------------+-------------+
| 1 | bob | 12 Some Road | 02456 | | |
| 2 | bobby | | 02456 | [email protected] | |
| 3 | bob | 12 Some Rd | 02456 | | 2010-07-13 |
| 4 | sir bob | | 02456 | | |
| 5 | bob | 12SomeRoad | 02456 | | |
| 6 | mr bob | | 02456 | | |
| 7 | robert | | 02456 | | |
+---------+---------+--------------+---------+------------+-------------+
これは、正確なテーブルをイマイチ - これはちょうど私が確認する方法を知って
を説明することである - 実際のテーブルは、32列を持っていますこの場合、私は電話番号を使用しています。私は別のテーブルに重複を抽出しました - 合計730キロのエントリーがあります。
これらのレコードをマージして(不要なレコードに削除のフラグを付ける)最も効率的な方法は何でしょうか?
私はINNER JOINでUPDATEを使用してみましたが、最初のレコードを後続のレコードのデータで更新したいのでWHERE句がいくつか必要です。
私はそのようなFuzzy Dupsなどのサードパーティのソフトウェアを見てきましたが、可能性は
最終目標は、私のようなものが残っているはずだということであれば、私は純粋なMySQLのオプションが欲しい:
+---------+---------+--------------+----------------------+-------------+
| id | Name | Address | Phone | Email | LastVisited |
+---------+---------+--------------+---------+------------+-------------+
| 1 | bob | 12 Some Road | 02456 | [email protected] | 2010-07-13 |
+---------+---------+--------------+---------+------------+-------------+
私はストアドプロシージャ/関数のループを調べるべきでしょうか、それとも私が逃した本当の簡単なことはありますか?
Uは、プロシージャを記述する必要があります...しかし、私はしたいですあなたが電話でグループ化したいのですが、もしそのグループのUが別の名前や住所などを持っていれば、どちらの価値があるのでしょうか? –
私は、いくつかの安定したポイントがあるはずだから、最初のレコードが正しいレコードでなければならないと言うならば。これはすべてのレコードでは当てはまらないかもしれませんが、私はそれを実行する意思があります! – Rucia