Để tìm các cặp giá trị trùng lặp trong MySQL, hãy sử dụng mệnh đề GROUP BY HAVING.
Đầu tiên chúng ta hãy tạo một bảng -
mysql> create table DemoTable748 (Id int, FirstName varchar(100)); Query OK, 0 rows affected (0.46 sec)
Chèn một số bản ghi vào bảng bằng lệnh chèn -
mysql> insert into DemoTable748 values(100,'John'); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable748 values(100,'Sam'); Query OK, 1 row affected (0.12 sec) mysql> insert into DemoTable748 values(200,'Carol'); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable748 values(200,'Carol'); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable748 values(300,'Mike'); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable748 values(300,'Sam'); 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âu lệnh select -
mysql> select *from DemoTable748;
Điều này sẽ tạo ra kết quả sau -
+------+-----------+ | Id | FirstName | +------+-----------+ | 100 | John | | 100 | Sam | | 200 | Carol | | 200 | Carol | | 300 | Mike | | 300 | Sam | +------+-----------+ 6 rows in set (0.00 sec)
Sau đây là truy vấn để tìm các cặp giá trị trùng lặp trong MySQL -
mysql> select Id from DemoTable748 group by Id,FirstName having count(*)=2;
Điều này sẽ tạo ra kết quả sau. Vì cặp giá trị trùng lặp duy nhất cho Id và FirstName là 200, do đó kết quả hiển thị giống nhau -
+------+ | Id | +------+ | 200 | +------+ 1 row in set (0.00 sec)