これはクエリでも可能だとは確信していませんが、ここには入ります。私は第三者から私たちのシステムに入ってきたデータを整理しています。最初の3文字からyyyymmdd形式のdobまでで構成されている、グループ内の各人に固有のあまりユニークでない文字列を作成しています。重複している数では、-1、-2、-3などをそのIDに追加して、それらが本当にユニークであるようにしたいと思います。上記でMySQL重複したレコードを更新する
JOH19700101 0001 JOHN SMITH 1970-01-01
JOH19700101 0001 JOHNSON SMITH 1970-01-01
JOH19700101 0002 JOHN SMITH 1970-01-01
それらが同じグループ(0001)であるので、最初の2つのID(JOH19700101)を有し-1および-2添付する必要があります。 3番目は、彼が別のグループ(0002)にいるのと同じままにすることができます。重複を選択
は十分に簡単だった:
SELECT x.id, x.uid, x.group, x.name, x.dob
FROM import x
INNER JOIN (
SELECT uid
FROM import
GROUP BY group, uid
HAVING COUNT(uid) > 1) z ON x.uid = z.uid;
は、最初の2個のサンプルがそれぞれJOH19700101-1とJOH19700101-2の新しいUIDを得るでしょうように、これにアップデートを追加する方法はありますか?
何かのように:。http://stackoverflow.com/questions/14998877/row-number-by-several-columns変数を使用して、そしてそれは、行全体の値に基づいて更新です。 – xQbert
append(-1、-2、-3)のようにローリングで更新を実行して重複を検出しますか?一意のIDごとに重複カウントを追跡するための手順が必要です。 – SArnab
私はここでトリガーを考えています。ただ、ヒント – peter