Tạo bảng demo
mysql> create table DemoTable (
-> value int
-> );
Query OK, 0 rows affected (0.82 sec)
Chèn dữ liệu có giá trị trùng lặp
mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.19 sec) mysql> insert into DemoTable values(100); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.28 sec) mysql> insert into DemoTable values(10); Query OK, 1 row affected (0.34 sec) mysql> insert into DemoTable values(30); Query OK, 1 row affected (0.24 sec) mysql> insert into DemoTable values(40); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(20); Query OK, 1 row affected (0.07 sec)
Hiển thị tất cả bản ghi
mysql> select * from DemoTable;
Kết quả
+-------+ | value | +-------+ | 10 | | 100 | | 20 | | 10 | | 30 | | 40 | | 20 | +-------+ 7 rows in set (0.00 sec)
Truy vấn tìm giá trị trùng lặp và hiển thị một lần
mysql> select * from DemoTable group by value having count(*) > 1;
Kết quả - Chỉ hiển thị 10 và 20 (xuất hiện > 1 lần)
+-------+ | value | +-------+ | 10 | | 20 | +-------+ 2 rows in set (0.00 sec)
Giải thích:
GROUP BY value: Nhóm các hàng có cùng giá trị.HAVING COUNT(*) > 1: Lọc chỉ những nhóm có số lượng lớn hơn 1 (tức là trùng lặp).
Mở rộng: Để xem số lần xuất hiện:
select value, count(*) as SoLanXuatHien from DemoTable group by value having count(*) > 1;