MySQL में आप उस तालिका से चयन नहीं कर सकते जिसे आप उसी समय से हटा रहे हैं। लेकिन एक अस्थायी तालिका से आप इस समस्या को दूर कर सकते हैं
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
);
या join
. का उपयोग करें इसके बजाय
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