Trang chủ » MySQL » Hướng dẫn tạo câu lệnh truy vấn tìm kiếm bản ghi trùng lặp trong mysql

MySQL

Hướng dẫn tạo câu lệnh truy vấn tìm kiếm bản ghi trùng lặp trong mysql

12/05/2024

Câu lệnh truy vấn tìm kiếm bản ghi trùng lặp trong mysql

Để tìm các bản ghi trùng lặp trong MySQL, bạn có thể sử dụng câu lệnh truy vấn sau:

SELECT column1, column2, COUNT(*)
FROM table_name
GROUP BY column1, column2
HAVING COUNT(*) > 1;

Trong đó:

table_name: là tên của bảng bạn muốn kiểm tra.

column1, column2,...: là các cột mà bạn muốn kiểm tra xem liệu có bản ghi nào trùng lặp hay không.

Câu truy vấn này sẽ trả về các bản ghi mà giá trị của các cột được chỉ định (column1, column2,...) là giống nhau và có ít nhất 2 bản ghi trùng lặp.

Cách xóa bản ghi trùng đó chỉ dữ lại 1 bản ghi duy nhất không trùng

Để xóa các bản ghi trùng lặp và chỉ giữ lại một bản ghi duy nhất trong MySQL, bạn có thể sử dụng câu lệnh DELETE với các phương thức để xác định bản ghi cần xóa. Dưới đây là một cách để làm điều đó:

Tạo một bảng tạm thời để lưu trữ các ID của các bản ghi muốn giữ lại.

Sử dụng câu lệnh DELETE để xóa các bản ghi không nằm trong bảng tạm thời.

Dưới đây là ví dụ về cách thực hiện:

-- Bước 1: Tạo bảng tạm thời để lưu trữ các ID của các bản ghi muốn giữ lại
CREATE TEMPORARY TABLE temp_table AS
SELECT MIN(id) AS keep_id
FROM table_name
GROUP BY column1, column2; -- Thay thế column1, column2 bằng các cột mà bạn muốn kiểm tra trùng lặp

-- Bước 2: Xóa các bản ghi không nằm trong bảng tạm thời
DELETE FROM table_name
WHERE id NOT IN (SELECT keep_id FROM temp_table);

-- Xóa bảng tạm thời sau khi hoàn thành
DROP TEMPORARY TABLE IF EXISTS temp_table;

Trong đó:

table_name: là tên của bảng bạn muốn kiểm tra.

column1, column2,...: là các cột mà bạn muốn kiểm tra xem liệu có bản ghi nào trùng lặp hay không.

id: là một trường duy nhất để xác định các bản ghi.

Lưu ý rằng trường id trong ví dụ được giả định là một trường duy nhất để xác định các bản ghi. Bạn cần thay thế id bằng tên trường phù hợp trong bảng của bạn. Chúc các bạn thành công.

 

 

Bài viết liên quan


Có nhiều loại dữ liệu khác nhau được hỗ trợ trong MySQL. Trong số đó đôi khi chúng ta cần dùng đến kiểu dữ liệu DATE để lưu trữ giá trị dữ liệu. Kiểu dữ liệu DATE được sử dụng cho các giá trị có phần ngày nhưng không có phần thời gian.

22:38 . 10/01/2024

Hàm WEEKDAY() trong MySQL được sử dụng để tìm giá trị ngày trong tuần cho một ngày cụ thể. Nếu ngày là NULL thì hàm WEEKDAY() sẽ trả về NULL. Ngược lại, nó trả về chỉ mục cho một ngày, tức là 0 cho Thứ Hai, 1 cho Thứ Ba,... 6 cho Chủ Nhật.

22:38 . 30/12/2023

Hàm SEC_TO_TIME() trong MySQL được sử dụng để chuyển đổi một giá trị thời gian (trong đơn vị giây) thành dạng chuỗi thời gian.

22:33 . 30/12/2023

Hàm YEARWEEK() trong MySQL được sử dụng để trả về một số nguyên đại diện cho tuần trong năm, dựa trên một giá trị ngày hoặc ngày/tháng cung cấp

22:30 . 30/12/2023

Hàm YEAR() trong MySQL được sử dụng để trích xuất phần năm từ một giá trị ngày hoặc ngày/tháng

22:10 . 30/12/2023

Hàm LTRIM() trong MySQL được sử dụng để loại bỏ các ký tự khoảng trắng từ phía bên trái (bắt đầu) của một chuỗi ký tự.

22:03 . 30/12/2023

Hàm DAYOFWEEK() trong MySQL được sử dụng để trả về một số nguyên đại diện cho ngày trong tuần (từ 1 đến 7), với Chủ nhật là ngày đầu tiên (1) và Thứ Bảy là ngày cuối cùng (7).

09:01 . 30/12/2023

Hàm DATE_SUB() trong MySQL được sử dụng để trừ một khoảng thời gian cụ thể từ một giá trị ngày/tháng cung cấp.

08:52 . 30/12/2023

Hàm DATE_FORMAT() trong MySQL được sử dụng để định dạng một ngày cụ thể theo giá trị định dạng đã cho, tức là, một ngày sẽ được cung cấp và hàm này sẽ định dạng ngày đó theo các tham số định dạng đã chỉ định.

 

0988 542 856
0988 542 856