MySQLは重複データを処理します 一部の MySQL テーブルには重複レコードが含まれている場合があります。重複データが存在することを許容する場合もありますが、重複データを削除する必要がある場合もあります。 この章では、データ テーブルに重複データが表示されないようにする方法と、データ テーブル内の重複データを削除する方法を紹介します。 テーブルに重複データが表示されないようにする データの一意性を確保するために、MySQL テーブル内の指定されたフィールドを PRIMARY KEY または UNIQUE インデックスとして設定できます。 例を試してみましょう: 次のテーブルにはインデックスや主キーがないため、テーブル内に複数の重複レコードが許可されます。 テーブル person_tbl を作成する ( ファーストネーム CHAR(20) 姓 CHAR(20)、 性別 CHAR(10) ); テーブル内の first_name フィールドと last_name フィールドのデータが重複しないように設定する場合は、二重主キー モードを設定してデータの一意性を設定できます。二重主キーを設定すると、そのキーのデフォルト値は NULL にできず、NOT NULL に設定できます。以下のように表示されます。 テーブル person_tbl を作成する ( first_name CHAR(20) NOT NULL、 last_name CHAR(20) NOT NULL、 性別 CHAR(10) 主キー (姓、名) ); 一意のインデックスを設定すると、重複データを挿入するときに SQL ステートメントが正常に実行されず、エラーがスローされます。 INSERT IGNORE INTO と INSERT INTO の違いは、INSERT IGNORE ではデータベースにすでに存在するデータが無視されることです。データベースにデータがない場合、新しいデータが挿入されます。データがある場合、そのデータはスキップされます。このようにして、データベース内の既存のデータを保持し、ギャップにデータを挿入するという目的を達成することができます。 次の例では、INSERT IGNORE INTO を使用しています。実行後にエラーは発生せず、データ テーブルに重複データは挿入されません。 mysql> person_tbl (姓、名) に IGNORE を挿入します -> VALUES('ジェイ', 'トーマス'); クエリは正常、1 行が影響を受けました (0.00 秒) mysql> person_tbl (姓、名) に IGNORE を挿入します -> VALUES('ジェイ', 'トーマス'); クエリは正常、影響を受けた行は 0 行 (0.00 秒) INSERT IGNORE INTO データを挿入する際、レコードの一意性を設定した後、重複したデータが挿入された場合、エラーは返されず、警告のみが返されます。 REPLACE INTO に同じプライマリまたは一意のレコードがある場合は、まずそれが削除されます。新しいレコードを再度挿入します。 データの一意性を設定する別の方法は、次に示すように、UNIQUE インデックスを追加することです。 テーブル person_tbl を作成する ( first_name CHAR(20) NOT NULL、 last_name CHAR(20) NOT NULL、 性別 CHAR(10) ユニーク (姓、名) ); 重複データのカウント 以下では、テーブル内の first_name と last_name の重複レコードの数をカウントします。 mysql> 繰り返しとして COUNT(*) を選択、姓、名 -> person_tbl から -> GROUP BY 姓、名 -> 繰り返し回数が 1 回を超える; 上記のクエリは、person_tbl テーブル内の重複レコードの数を返します。 一般に、重複する値を照会するには、次の手順を実行します。
重複データのフィルタリング 重複しないデータを読み取る必要がある場合は、SELECT ステートメントで DISTINCT キーワードを使用して重複データを除外できます。 mysql> SELECT DISTINCT 姓、名 -> person_tbl から; GROUP BY を使用してテーブル内の一意のデータを読み取ることもできます。 mysql> 姓、名を選択 -> person_tbl から -> GROUP BY (姓、名); 重複排除 テーブル内の重複データを削除する場合は、次の SQL ステートメントを使用できます。 mysql> CREATE TABLE tmp SELECT last_name, first_name, sex FROM person_tbl GROUP BY (last_name, first_name, sex); mysql> テーブル person_tbl を削除します。 mysql> ALTER TABLE tmp の名前を person_tbl に変更します。 もちろん、データ テーブルに INDEX (インデックス) と PRIMAY KEY (主キー) を追加して、テーブル内の重複レコードを削除することもできます。方法は次のとおりです。 mysql>テーブル person_tbl を無視する変更 -> 主キーを追加します (last_name, first_name); 以上がMySQLの重複データの処理に関する勉強ノートの詳しい内容です。MySQLの重複データの処理についての詳細は、123WORDPRESS.COMのその他の関連記事にも注目してください! 以下もご興味があるかもしれません:
|
<<: Docker.v19 で Docker Compose オーケストレーション ツールをインストールして構成する方法
>>: js に基づいて大きなファイルのアップロードとブレークポイントの再開を管理する方法
HTML は、World Wide Web 上で公開するために使用されるハイブリッド言語です。 XH...
CentOS 8 がリリースされてから随分経ちました。Linux 仮想マシンをいじっている人間として...
1. MS SQL Server 2005 --1. ログをクリアするexec('DUMP...
Web デザインの理解に関しては、多くの人がまだ Web ページ制作のレベルにとどまっているようで...
<br />一般的なゲストブック、フォーラムなどでは、テキスト入力ボックスが使われていま...
jar パッケージを実行する Linux コマンドは次のとおりです。方法1: java -jar s...
問題の説明1. 収集ステーションのデータベース2. データが無い状態での移動は問題ありませんが、デー...
1. CDNこれは、Web サイト上で最もよく使用される加速機能です。分散サーバー レイアウトによ...
目次1. コンポーネントの登録2. コンポーネントの使用3. 父から息子へ4. 息子から父へ5. ス...
この記事の例では、記事の折りたたみと展開の機能を実現するためのjQueryの具体的なコードを参考まで...
JSを使用して、参考用の簡単な計算機を完成させます。具体的な内容は次のとおりです。要件: 入力値は数...
目次背景1. 思考分析2. ページ構成2.1 HTML レイヤー2.2 CSS レイヤー2.3 JS...
コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...
目次1. 親コンポーネントが子コンポーネントにデータを渡す1.1. 親コンポーネントコード1.2. ...
目次序文JavaScript find() メソッドJavaScript filter() メソッド...