이 쿼리가 왜
DELETE FROM test
WHERE id = ( SELECT id
FROM (SELECT * FROM test) temp
ORDER BY RAND()
LIMIT 1
);
때로는 1 행, 때로는 2 행, 때로는 아무것도 삭제하지 않습니까?
이 양식으로 작성하면 :
SET @var = ( SELECT id
FROM (SELECT * FROM test) temp
ORDER BY RAND()
LIMIT 1
);
DELETE FROM test
WHERE id=@var;
그런 다음 제대로 작동합니다-하위 쿼리에 문제가 있습니까?
LIMIT사용하는 경우에만 지원되지 않습니다IN(~ drachenstern 역 따옴표로 대체 <코드>)