Trong MySQL, bạn không thể chọn từ bảng bạn đang xóa cùng một lúc. Nhưng với bảng tạm thời, bạn có thể khắc phục được vấn đề này
DELETE FROM `users_acl`
WHERE userID IN
(
SELECT * FROM
(
SELECT userID
FROM `users_acl`
GROUP BY userID
HAVING COUNT(userID) > 1
AND SUM(`acl` = 4) > 0
) tmp
);
hoặc sử dụng join
thay vào đó
DELETE u
FROM `users_acl` u
JOIN
(
SELECT userID
FROM `users_acl`
GROUP BY userID
HAVING COUNT(userID) > 1
AND SUM(`acl` = 4) > 0
) tmp on tmp.userID = u.userID