¿Por qué esta consulta
DELETE FROM test
WHERE id = ( SELECT id
FROM (SELECT * FROM test) temp
ORDER BY RAND()
LIMIT 1
);
a veces eliminar 1 fila, a veces 2 filas y a veces nada?
Si lo escribo de esta forma:
SET @var = ( SELECT id
FROM (SELECT * FROM test) temp
ORDER BY RAND()
LIMIT 1
);
DELETE FROM test
WHERE id=@var;
entonces funciona correctamente: ¿hay algún problema en la subconsulta?
LIMIT
no es compatible solo con el usoIN
(<code> reemplazado con backticks ~ drachenstern)