Por que essa consulta
DELETE FROM test
WHERE id = ( SELECT id
FROM (SELECT * FROM test) temp
ORDER BY RAND()
LIMIT 1
);
às vezes excluir 1 linha, às vezes 2 linhas e às vezes nada?
Se eu escrevê-lo desta forma:
SET @var = ( SELECT id
FROM (SELECT * FROM test) temp
ORDER BY RAND()
LIMIT 1
);
DELETE FROM test
WHERE id=@var;
então ele funciona corretamente - há problema na subconsulta?
LIMIT
não é suportado somente para o usoIN
(<code> substituído com acentos graves ~ drachenstern)