ホームページ > データベース > mysql チュートリアル > SQLで重複データを削除する方法

SQLで重複データを削除する方法

醉折花枝作酒筹
リリース: 2022-01-12 15:09:01
オリジナル
38895 人が閲覧しました

SQL では、select ステートメントを使用して重複データを削除できます。構文は次のとおりです。「select * from field where field id in (select field id from field group by field getting count (field id) >」 1)」。

SQLで重複データを削除する方法

このチュートリアルの動作環境: Windows7 システム、mysql8.0 バージョン、Dell G3 コンピューター。

SQL ステートメントを使用して重複を削除し、1 つだけを保持する

数千のレコードの中に同一のレコードがいくつかあります。SQL ステートメントを使用して重複を削除するにはどうすればよいですか

冗長な重複を検索するテーブル内のレコード 重複レコードは単一フィールド (peopleId) に基づいて判断されます

select * from people 
where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)
ログイン後にコピー

Extension:

テーブル内の重複する重複を削除します レコード、重複レコードが判断されます単一のフィールド (peopleId) に基づいて、最小の ROWID を持つレコードのみが残ります。

delete from people
where   peopleName in (select peopleName    from people group by peopleName      having count(peopleName) > 1)
and   peopleId not in (select min(peopleId) from people group by peopleName     having count(peopleName)>1)
ログイン後にコピー

テーブル内の冗長な重複レコード (複数のフィールド) を検索します。

select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
ログイン後にコピー

テーブルを削除します。 冗長な重複レコード(複数のフィールド)、最小の rowid を持つレコードのみが残ります

delete from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
ログイン後にコピー

ルックアップ テーブル内の過剰な重複レコード (複数のフィールド)、最小の rowid を持つレコードを除外します

select * from vitae a
where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
and rowid not in (select min(rowid) from vitae group by peopleId,seq having count(*)>1)
ログイン後にコピー

最初のレコードを削除しますフィールドの左側の数字:

update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'
ログイン後にコピー

フィールドの右側の最初の数字を削除します:

update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村'
ログイン後にコピー

False テーブル内の重複する重複レコード (複数のフィールド) を削除します。レコードは含まれません。最小の ROWID

update vitae set ispass=-1where peopleId in (select peopleId from vitae group by peopleId
ログイン後にコピー

関連する推奨事項: 「mysql チュートリアル

以上がSQLで重複データを削除する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート