Pourquoi cette requête
DELETE FROM test
WHERE id = ( SELECT id
FROM (SELECT * FROM test) temp
ORDER BY RAND()
LIMIT 1
);
parfois supprimer 1 ligne, parfois 2 lignes et parfois rien?
Si je l'écris sous cette forme:
SET @var = ( SELECT id
FROM (SELECT * FROM test) temp
ORDER BY RAND()
LIMIT 1
);
DELETE FROM test
WHERE id=@var;
alors cela fonctionne correctement - est un problème dans la sous-requête?
LIMIT
n'est pas pris en charge uniquement pour l'utilisationIN
(<code> remplacé par des backticks ~ drachenstern)