web-dev-qa-db-fra.com

Comment obtenir un enregistrement aléatoire à partir de la base de données MS Access

J'ai une base de données d'accès MS. En cela, une table est constituée de questions et de réponses avec des principaux questionnaires. J'ai besoin de récupérer une question aléatoire de cette table en utilisant des questionnaires. Quels mots clés ou requêtes dois-je utiliser pour ce scénario?.

14
user1169809

Ce qui suit obtiendra un questionnaire aléatoire de votre table

Mysql

SELECT questionID FROM questions ORDER BY Rand() LIMIT 1

Accès MS

SELECT top 1 questionID from questions ORDER BY rnd(questionID)
14
SuperRod

Pour obtenir différents enregistrements aléatoires, vous pouvez utiliser, ce qui nécessiterait un champ d'identification dans votre table.

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

Une valeur négative passée sous forme de paramètre sur la fonction RND fournira la première valeur aléatoire du générateur à l'aide de ce paramètre comme valeur de démarrage. (Une sorte de randomisation définie). Spécial grâce à l'indice de @kobik des commentaires.

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

Cela vous donnera un nouvel ensemble de réponses à chaque fois, vous n'avez même pas besoin de créer un temps lorsque vous utilisez "maintenant" (qui sera à chaque fois une nouvelle fois que vous cliquez sur ceci, quelle que soit la vitesse de votre vitesse), dans Mon opinion la solution la plus simple et nette de résoudre cela dans l'accès.

4
Yauhun