Để kiểm tra các bản sao trong MySQL, bạn có thể sử dụng mệnh đề group by have. Cú pháp như sau.
select yourColumnName1,yourColumnName2,......N,count(*) as anyVariableName from yourTableName group by yourColumnName1,yourColumnName2 having count(*) > 1;
Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau.
mysql> create table DuplicateDemo -> ( -> StudentId int not null, -> StudentFirstName varchar(100), -> StudentLastName varchar(100), -> Primary Key(StudentId) -> ); Query OK, 0 rows affected (0.50 sec)
Chèn một số bản ghi trong bảng bằng lệnh chèn. Truy vấn như sau.
mysql> insert into DuplicateDemo values(1,'John','Smith'); Query OK, 1 row affected (0.13 sec) mysql> insert into DuplicateDemo values(2,'Mike','Jones'); Query OK, 1 row affected (0.28 sec) mysql> insert into DuplicateDemo values(3,'David','Smith'); Query OK, 1 row affected (0.15 sec) mysql> insert into DuplicateDemo values(4,'Carol','Taylor'); Query OK, 1 row affected (0.20 sec) mysql> insert into DuplicateDemo values(5,'David','Smith'); Query OK, 1 row affected (0.11 sec) mysql> insert into DuplicateDemo values(6,'John','Smith'); Query OK, 1 row affected (0.16 sec) mysql> insert into DuplicateDemo values(7,'John','Taylor'); Query OK, 1 row affected (0.15 sec)
Hiển thị tất cả các bản ghi từ bảng bằng cách sử dụng câu lệnh select.
Truy vấn như sau -
mysql> select *from DuplicateDemo;
Sau đây là kết quả.
+-----------+------------------+-----------------+ | StudentId | StudentFirstName | StudentLastName | +-----------+------------------+-----------------+ | 1 | John | Smith | | 2 | Mike | Jones | | 3 | David | Smith | | 4 | Carol | Taylor | | 5 | David | Smith | | 6 | John | Smith | | 7 | John | Taylor | +-----------+------------------+-----------------+ 7 rows in set (0.00 sec)
Đây là truy vấn để kiểm tra các bản sao từ bảng.
mysql> select StudentFirstName,StudentLastName,count(*) as Total from DuplicateDemo -> group by StudentFirstName,StudentLastName -> having count(*) > 1;
Sau đây là kết quả.
+------------------+-----------------+-------+ | StudentFirstName | StudentLastName | Total | +------------------+-----------------+-------+ | John | Smith | 2 | | David | Smith | 2 | +------------------+-----------------+-------+ 2 rows in set (0.00 sec)