SELECT *
FROM X
WHERE flags = 0
ORDER BY rand()
LIMIT 1
Cela récupère 1 ligne aléatoire. Remplacez 1 par N pour obtenir N lignes aléatoires.
Mise en garde :Comme d'autres l'ont souligné, cela peut être lent car il nécessite une analyse complète de la table. J'avais l'habitude de le faire avec DB2, où cela fonctionnait parfaitement pour les tables avec des centaines de milliers de lignes, mais selon le lien dans réponse de tereško , MySQL semble se dégrader beaucoup plus rapidement.