Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Random() no MySql?

SELECT *
FROM X
WHERE flags = 0
ORDER BY rand()
LIMIT 1

Isso recupera 1 linha aleatória. Substitua 1 por N para obter N linhas aleatórias.

Advertência:Como outros apontaram, isso pode ser lento, pois precisa de uma verificação completa da tabela. Eu costumava fazer isso com o DB2, onde funcionava perfeitamente para tabelas com centenas de milhares de linhas, mas de acordo com o link em resposta de tereško , o MySQL parece se degradar muito mais rápido.