Nếu bạn chưa có chỉ mục về number
bạn nên thêm một -
CREATE INDEX table_number ON table (number);
CẬP NHẬT Hãy thử điều này -
UPDATE inv t1
INNER JOIN inv t2
ON t1.name = t2.name
AND t1.id <> t2.id
SET t1.flag_qty = 1;
Bạn có thể tạo bảng của mình chỉ với các bản sao bằng cách chọn dữ liệu này trực tiếp vào một bảng khác thay vì thực hiện cập nhật cờ này trước.
INSERT INTO duplicate_invs
SELECT DISTINCT inv1.*
FROM inv AS inv1
INNER JOIN inv AS inv2
ON inv1.name = inv2.name
AND inv1.id < inv2.id
Nếu bạn có thể giải thích logic mà các hàng bị xóa khỏi inv
bảng này có thể là toàn bộ quá trình có thể được thực hiện trong một bước.