mysqlデータベース内の重複レコードを削除するにはどうすればよいですか?

青灯夜游
リリース: 2020-10-13 09:16:56
オリジナル
12724 人が閲覧しました

Mysql でデータベース内の重複レコードを削除する手順: 最初に重複データをカウントし、次に「SELECT DISTINCT」ステートメントを使用して重複データをフィルタリングし、最後に INDEX と PRIMAY KEY をデータ テーブルに追加して、データベース内の重複レコードを削除します。テーブル 。

mysqlデータベース内の重複レコードを削除するにはどうすればよいですか?

通常の MySQL データ テーブルの場合、重複データが存在する可能性があります。重複データが許可される場合もあれば、許可されない場合もあります。これらの重複データを見つけて削除する必要がありますが、具体的な処理方法は次のとおりです。

関連する学習の推奨事項: mysql チュートリアル (ビデオ)

方法 1: 重複データがテーブルに表示されないようにする

テーブルにデータが追加されていない場合は、MySQL データ テーブルの指定されたフィールドを PRIMARY KEY (主キー) または UNIQUE (***) インデックスとして設定して、データの整合性。

たとえば、学生情報テーブルで学生番号 no を繰り返すことはできません。学生番号 no を主キーとして設定する必要があり、デフォルト値を NULL にすることはできません。

CREATE TABLE student 
( 
no CHAR(12) NOT NULL, 
name CHAR(20), 
sex CHAR(10), 
PRIMARY KEY (no) 
);
ログイン後にコピー

方法 2: 重複値をフィルターして削除する

データ テーブル内の元のデータについて、重複データを削除する場合は、重複データの検索、フィルタリング、削除の手順を実行する必要があります。

1. 重複データの数

mysql> SELECT COUNT(*) as repetitions,no 
-> FROM student 
-> GROUP BY no 
-> HAVING repetitions > 1;
ログイン後にコピー

上記のクエリ ステートメントは、student テーブル内の重複レコードの数を返します。

2. 重複データのフィルタリング

重複しないデータを読み取る必要がある場合は、SELECT ステートメントで DISTINCT キーワードを使用して重複データをフィルタリングできます。

mysql> SELECT DISTINCT no 
-> FROM student;
ログイン後にコピー

GROUP BY を使用して、データ テーブル内の重複しないデータを読み取ることもできます

mysql> SELECT no 
-> FROM student 
-> GROUP BY (no);
ログイン後にコピー

3. 重複データの削除

データを削除しますデータ テーブル内 重複データの場合は、次の SQL ステートメントを使用できます。

mysql> CREATE TABLE tmp SELECT no, name, sex FROM student GROUP BY (no, sex); 
mysql> DROP TABLE student; 
mysql> ALTER TABLE tmp RENAME TO student;
ログイン後にコピー

データ テーブルに INDEX (インデックス) と PRIMAY KEY (主キー) を追加して、テーブル内の重複レコードを削除することもできます。方法は次のとおりです。

mysql> ALTER IGNORE TABLE student 
-> ADD PRIMARY KEY (no);
ログイン後にコピー

この記事は php中文网 mysql グラフィック チュートリアル チャネルからのものです。学習へようこそ!

以上がmysqlデータベース内の重複レコードを削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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