ホームページ  >  記事  >  データベース  >  mysql テーブルの重複行を削除し、より小さい (またはより大きい) ID を持つレコードを保持する方法

mysql テーブルの重複行を削除し、より小さい (またはより大きい) ID を持つレコードを保持する方法

黄舟
黄舟オリジナル
2017-02-27 13:09:271202ブラウズ

データデータベースに入力する過程で、データ量が比較的大きい場合、何らかの理由で必然的に複数の繰り返しレコードに入力されることになるため、繰り返しを削除し、大きい ID または小さい ID を記録する操作を行います。 。

この例で使用されるデータテーブルの構造は次のとおりです tdb_goods

out out out 's off ' s

‐ ‐ ‐ テーブル内で繰り返されるデータは tdb_goods になります


(つまり、重複レコード) コンテンツ


mysql> SELECT goods_id,goods_name FROM tdb_goods GROUP BY goods_name HAVING COUN
T(goods_name)>=2;
+----------+------------------------------+
| goods_id | goods_name                   |
+----------+------------------------------+
|       20 | X3250 M4机架式服务器 2583i14            |
|       19 | 商务双肩背包                          |
+----------+------------------------------+
2 rows in set (0.01 sec)

LEFT JOIN を使用して上記のクエリ結果を削除し、重複レコードを削除し、元のテーブルと上記のうちの

mysql> DELETE t1 FROM tdb_goods AS t1 LEFT JOIN( SELECT goods_id,goods_name FROM
 tdb_goods GROUP BY goods_name HAVING COUNT(goods_name)>=2) AS t2 ON t1.goods_na
me = t2.goods_name WHERE t1.goods_id>t2.goods_id;
Query OK, 2 rows affected (0.06 sec)
を保持します。クエリ結果。同じ名前を持つレコードをすべて削除し、goods_id が大きいレコードをすべて削除します。このようにして、目的の効果を達成できます。

through - 使用する JOIN を使用する。

上記は、mysql がテーブル内の重複行を削除し、より小さい (またはより大きい) ID を持つレコードを保持する方法です。さらに関連するコンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。