ホームページ >データベース >mysql チュートリアル >新しいテーブルを作成せずにデータベーステーブルから重複行を削除するにはどうすればよいですか?
テーブルからの重複行の削除
別のテーブルを作成せずにデータベース テーブルから重複行を削除する方法を探します。次のテーブルを考えてみましょう:
id | action | L11_data |
---|---|---|
L1_name | L1_data | L11_data1 |
L2_name | L2_data | L11_data2 |
L3_name | L3_data | L11_data3 |
L4_name | L4_data | L11_data4 |
L5_name | L5_data | L11_data1 |
L6_name | L6_data | L11_data2 |
L7_name | L7_data | L11_data5 |
L8_name | L8_data | L11_data1 |
L9_name | L9_data | L11_data6 |
L10_name | L10_data | L11_data2 |
L11_name | L11_data | L11_data7 |
L12_name | L12_data | L11_data8 |
L13_name | L13_data | L11_data1 |
L14_name | L14_data | L11_data6 |
L15_name | L15_data | L11_data9 |
既存の重複行
前述のとおり、テーブルには各アクション グループ内の L11_data 列に重複した値が含まれています。目標は、各アクションの一意の L11_data 値とそれに対応するデータのみを保持することです。
解決策
テーブルに一意の ID フィールドがあると仮定すると、次のクエリ:
DELETE FROM Table WHERE ID NOT IN ( SELECT MIN(ID) FROM Table GROUP BY action, L11_data )
クエリ内訳
メモ
以上が新しいテーブルを作成せずにデータベーステーブルから重複行を削除するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。