ホームページ >データベース >mysql チュートリアル >mysqlで重複チェックを実装し、1つだけを残す方法
# 推奨: 「重複チェックを実装し、1 つだけを保持する Mysql メソッド: まず、「select * from」を使用してテーブル内の重複する重複レコードを見つけます。次に、「delete from」を使用して重複データを削除し、1 つのデータのみを保持します。
mysql ビデオ チュートリアル 」
mysql は重複データを削除し、1 つのレコードのみを保持します重複データを削除し、名前の中で最も小さい ID を持つレコードを保持しますdelete from order_info where id not in (select id from (select min(id) as id from order_info group by order_number) as b);
delete from table where id not in (select min(id) from table group by name having count(name)>1) and id in (select id group by name having count(name)>1)(注: HAVING 句が GROUP BY 句の条件を設定する方法は、WHERE 句の方法と似ています。と SELECT は相互作用します。WHERE 検索条件はグループ化操作の実行前に適用され、HAVING 検索条件はグループ化操作の実行後に適用されます。HAVING 構文は WHERE 構文に似ていますが、HAVING には集計関数を含めることができます。HAVING 句は参照できます。選択リストに表示される任意の項目。) 拡張子: SQL: 重複データを削除し、SQL ステートメントを 1 つだけ保持します。重複データを削除し、数千のレコードのうち 1 つだけを保持します。同一のレコードがいくつかありますが、SQL ステートメントを使用して重複を削除するにはどうすればよいですか? 1. テーブル内の重複する重複レコードを見つけます。重複レコード単一フィールド (peopleId) に基づいて判断します
select * from people where peopleId in (select peopleId from people group by peopleId having count(peopleId) > 1)2. テーブル内の重複する重複レコードを削除します 重複レコードは単一フィールド (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)3. テーブルの冗長重複レコード (複数フィールド) を検索します##
select * from vitae a where (a.peopleId,a.seq) in (select peopleId,seq from vitae group by peopleId,seq having count(*) > 1)
4. テーブル内の冗長重複レコード (複数フィールド) を削除し、最小の 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)
5. テーブルの冗長重複レコード (複数フィールド) を検索し、最小の 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)
6. フィールドの左側の最初の桁を削除します:
update tableName set [Title]=Right([Title],(len([Title])-1)) where Title like '村%'
7. フィールドの右側の最初の桁を削除します 最初の場所:
update tableName set [Title]=left([Title],(len([Title])-1)) where Title like '%村'
8. テーブル内の重複する重複レコード (複数のフィールド) を偽って削除し、最小の rowid を持つレコードを除外します
リーリー以上がmysqlで重複チェックを実装し、1つだけを残す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。