Truy vấn tìm kiếm
Sử dụng câu lệnh truy vẫn MySqlSELECT * , COUNT(*) AS number_record
FROM users
GROUP BY name
HAVING number_record > 1
1, Hiển thị các dữ liệu trùng nhau
Hiện thị đầy đủ các bản ghi trùng lặpSELECT * FROM users WHERE name IN (
SELECT name
FROM users
GROUP BY name
HAVING COUNT(name) > 1
)
ORDER BY name
2, Xóa các dữ liệu trùng nhau (giữ lại 1 record)
Câu lệnh dưới đây sẽ xóa những record trùng nhau nhưng giữ lại 1 record trong số đó. Giả sử trong Database có 3 record trùng nhau thì câu lệnh sẽ xóa 2 record và giữ lại 1 record.
DELETE n1
FROM users n1, users n2
WHERE n1.name = n2.name AND n1.id > n2.id
3, Xóa hoàn toàn các dữ liệu trùng nhau ra khỏi Database
Xoá tất cả những bản ghi trùng nhau
DELETE FROM users
USING users, users AS virtual_users
WHERE (NOT users.id = virtual_users.id) AND (users.name = virtual_users.name)
Nhận xét
Đăng nhận xét