でbusi_idがどこユーザー情報から削除する
(からbusi_id選択
(busi_id有するカウント(busi_id)> 1)TMP1によってグループユーザー情報からbusi_id選択)
しないでとID
からIDを選択する(
busi_id持つ数でグループユーザー情報から(セレクト分(ID)IDを(busi_id)> 1)TMP2);
。无主键添加主键再去重操作
DELETE FROM ユーザーID 、NOT INは(SELECT 一時は.min_id FROM (SELECT MIN (ID )min_id FROM ユーザーGROUP 名で、年齢)AS 温度を)。
主キーは、設計テーブルで指定されていない場合、
可能な複製は、データのインポートをインポートするときに
同じことが表に表示された複数の複数の記録をもたらします。
この問題を解決するためのアイデアを、次のとおりです。
明確な声明を使用すると、一時テーブルのtmpに保存された重複レコードを除外していない。
表tmpなどを(明確なのSnO、SNAME、年齢、SからセックスをSELECT)を作成し、
元のテーブル内のデータレコードを削除
sから削除し、
一時テーブル内のデータ元のテーブルに挿入されます。
TMPから選択* sの挿入、
一時テーブルの削除
ドロップテーブルTMPを、
私たちは名前と性別が同じデータである削除したい場合は2ここで紹介する方法は、学生、名前と性別(M:女性、1 0)のテーブルがあります
まず、データシートを見て
番号 | フルネーム | 性別 |
1 | 王呂 | 0 |
2 | 李孟 | 0 |
3 | 張元帥 | 1 |
4 | 李孟 | 0 |
5 | 張元帥 | 1 |
6 | 劉タオ | 1 |
NO.1
同上小さなデータ保持
学生T1、学生T2からT1をDELETE t1.name = t2.name AND t1.sex = t2.sexとt1.id> t2.id
ID大きなデータ保持
学生T1、学生T2からT1をDELETE t1.name = t2.name AND t1.sex = t2.sexとt1.id <t2.id
なお、最後のt1.id> t2.idを忘れないでください、それ以外の場合は、運転前にデータをバックアップしてください、すべてのデータが削除されます
NO.2
student_tmp(名前、性別)。INSERT INTO DISTINCT名を選択し、学生FROMセックス
概要
二つの方法の長所と短所:
二つの方法のために必要な時間は短くなるが、第二の方法主キーがUUIDであるとき、それに対処する必要があり、次のSQLにそれを実行し、int型をインクリメントするための主キーになります。
UPDATEのstudent_tmpセットID = UUID()