Чому цей запит
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
(<code> замінено на задній план ~ drachenstern)