2012-03-30 28 views

Respuesta

13

El siguiente obtendrá un IdPregunta azar de su mesa

MySQL

SELECT questionID FROM questions ORDER BY RAND() LIMIT 1 

MS Access

SELECT top 1 questionID from questions ORDER BY rnd(questionID) 
+8

la versión para MS Access, parece generar registros aleatorios, pero los mismos cada vez. – kneidels

+1

DE ACUERDO .. mismos registros aleatorios –

23

Para obtener el registro aleatorio diferente que puede utilizar, lo que requeriría un campo ID en su tabla

SELECT TOP 1 questionID FROM questions ORDER BY Rnd(-(100000*questionID)*Time()) 

Un valor negativo pasado como parámetro a la función Rnd entregará el primer valor aleatorio del generador utilizando este parámetro como valor de inicio. (Una especie de aleatorización definida). Gracias especiales a la sugerencia de @kobik de los comentarios.

+2

Cosa divertida. He probado todas las respuestas sugeridas, incluido esto obtengo registros diferentes/aleatorios. pero tan pronto como ejecuto nuevamente mi programa de prueba, los resultados están en la misma secuencia que antes. como si el generador de semillas al azar se reiniciara cada vez en ms-access. Más tarde encontré esto: [La consulta aleatoria del generador de números no es tan aleatoria] (http://database.ittoolbox.com/groups/technical-functional/access-l/random-number-generator-query-not-so-random- 3887838) – kobik

+0

hace lo mismo bummi, cada vez que lo ejecuto obtengo los mismos 4 resultados –

+0

así que cómo sugieres arreglar @Kobik –

4
SELECT TOP 5 questionID FROM [tableName] ORDER BY rnd(INT(NOW*questionID)-NOW*questionID) 

Esto le dará un nuevo conjunto de respuestas cada vez, ni siquiera es necesario para compensar un momento en que se utiliza "AHORA" (que va a ser cada vez que un nuevo tiempo hace clic en este no importa qué tan rápido haces clic), en mi opinión la forma más simple y ordenada de resolver esto en Access.

+0

Este funciona perfectamente bien para mí. Todos los demás métodos proporcionan el mismo conjunto de registros. Buen trabajo. – MatVAD

Cuestiones relacionadas