Dlaczego to zapytanie?
DELETE FROM test
WHERE id = ( SELECT id
FROM (SELECT * FROM test) temp
ORDER BY RAND()
LIMIT 1
);
czasami usuwam 1 wiersz, czasem 2 wiersze, a czasem nic?
Jeśli napiszę to w tej formie:
SET @var = ( SELECT id
FROM (SELECT * FROM test) temp
ORDER BY RAND()
LIMIT 1
);
DELETE FROM test
WHERE id=@var;
to działa poprawnie - czy jest problem w podzapytaniu?
LIMIT
nie jest obsługiwany tylko w przypadku używaniaIN
(<kod> zastąpiony backtickami ~ drachenstern)