Computer >> Máy Tính >  >> Lập trình >> MySQL

Tìm và hiển thị các bản ghi trùng lặp trong MySQL?

Đầu tiên, một bảng được tạo với sự trợ giúp của lệnh CREATE. Điều này được đưa ra như sau -

mysql> CREATE table DuplicateFound
-> (
-> ID int,
-> Name varchar(100),
-> Location varchar(200)
-> );
Query OK, 0 rows affected (0.45 sec)

Sau khi tạo bảng, các bản ghi được chèn với sự trợ giúp của lệnh INSERT asfollows -

mysql> INSERT into DuplicateFound values(1,'John','US');
Query OK, 1 row affected (0.10 sec)

mysql> INSERT into DuplicateFound values(2,'Bob','UK');
Query OK, 1 row affected (0.18 sec)

mysql> INSERT into DuplicateFound values(3,'David','US');
Query OK, 1 row affected (0.14 sec)

mysql> INSERT into DuplicateFound values(4,'Smith','US');
Query OK, 1 row affected (0.16 sec)

mysql> INSERT into DuplicateFound values(5,'Carol','UK');
Query OK, 1 row affected (0.16 sec)

Các bản ghi được hiển thị với sự trợ giúp của câu lệnh SELECT. Điều này được đưa ra dưới đây -

mysql> SELECT * from DuplicateFound;

Sau đây là kết quả thu được -

+------+-------+----------+
| ID   | Name  | Location |
+------+-------+----------+
| 1    | John  | US       |
| 2    | Bob   | UK       |
| 3    | David | US       |
| 4    | Smith | US       |
| 5    | Carol | UK       |
+------+-------+----------+
5 rows in set (0.00 sec)

Truy vấn để tìm và hiển thị các bản ghi trùng lặp với nhau được đưa ra như sau -

mysql> SELECT * from DuplicateFound
-> where location in (select location from DuplicateFound group by location having count(location) >1 )
-> order by location;

Sau đây là kết quả thu được

+------+-------+----------+
| ID   | Name  | Location |
+------+-------+----------+
| 2    | Bob   | UK       |
| 5    | Carol | UK       |
| 1    | John  | US       |
| 3    | David | US       |
| 4    | Smith | US       |
+------+-------+----------+
5 rows in set (0.06 sec)

Chúng tôi có thể hiển thị các bản ghi đó thuộc về một vị trí duy nhất. Điều này được đưa ra như sau -

mysql> select Name,location from DuplicateFound
-> group by location
-> having count(location) > 1;

Sau đây là kết quả

+------+----------+
| Name | Location |
+------+----------+
| John | US       |
| Bob   | UK      |
+------+----------+
2 rows in set (0.04 sec)