2012-01-08 29 views
17

Duplicar posible:
Selecting Random Rows in MySQLSeleccionar filas aleatorias de la tabla MySQL

estoy creando una sencilla aplicación web con PHP y MySQL. En él, necesito seleccionar al azar un pequeño conjunto de filas de una tabla en orden aleatorio. ¿Cómo puedo lograr tal cosa usando MySQL?

+2

Busca por favor antes de hacer preguntas. Buscar el título exacto de su pregunta produce [this] (http://stackoverflow.com/questions/1283640) y muchas otras preguntas similares. – DaveRandom

+0

[MySQL selecciona 10 filas aleatorias de 600K filas más rápido] (https://stackoverflow.com/q/4329396/6521116) –

Respuesta

44
SELECT * FROM table ORDER BY RAND() LIMIT 10; 

Editar:

Datos útiles sobre la función de MySQL RAND() se puede encontrar here.

+0

¡Ay ... Tengo más de 500 millones de filas! Eso es un poco lento ... –

+2

Hay otras opciones de rendimiento, si tiene una clave principal secuencial, precomputa un rango de ID en el idioma de su elección y haga un 'SELECT ... WHERE id IN (x)' –

+0

Consulta ' seleccione count (*) de los usuarios; 'returns 10293453. Query' SELECT id FROM users ORDER BY RAND() LIMIT 10; 'ejecuta 5 seg. – klay

5
select * from table order by rand() limit 10 

Tenga en cuenta que order by rand() con gran conjunto de datos es muy lento, pero en su caso no es un problema.

3

puede hacerlo utilizando la función RAND().

SELECT questine FROM tablename ORDER BY RAND() LIMIT 10 

seleccionará 10 questines al azar bajo el supuesto de la questine se almacena bajo questine campo

Cuestiones relacionadas