sql >> Databasteknik >  >> RDS >> Mysql

Random() i MySql?

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

Detta hämtar 1 slumpmässig rad. Byt ut 1 mot N för att få N slumpmässiga rader.

Varning:Som andra påpekade kan detta vara långsamt eftersom det behöver en fullbordsskanning. Jag brukade göra detta med DB2, där detta fungerade perfekt för tabeller med hundratusentals rader, men enligt länken i tereškos svar , MySQL verkar försämras mycket snabbare.



  1. Flera infoga SQL-oracle

  2. postgresql installationer för enstaka tillfällen

  3. Hur man infogar CSV-data i PostgreSQL-databasen (fjärrdatabas)

  4. Databasanvändarhantering:Hantera roller för MariaDB