2012-03-30 7 views

Antwort

13

Im Folgenden wird eine zufällige QuestionID aus Ihrer Tabelle

MySQL

SELECT questionID FROM questions ORDER BY RAND() LIMIT 1 

MS Access

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

die Version für MS Access, scheint zufällige Datensätze zu generieren - aber die gleichen jedes Mal! – kneidels

+1

STIMMEN .. gleiche zufällige Datensätze –

23

Um verschiedene Zufalls Aufzeichnung erhalten Sie verwenden können, die ein ID-Feld erfordern würde in Ihrer Tabelle

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

Ein negativer Wert, der als Parameter an die Rnd-Funktion übergeben wird, liefert den ersten Zufallswert vom Generator mit diesem Parameter als Startwert. (Eine Art definierter Randomize). Besonderer Dank an @kobiks Hinweis aus den Kommentaren.

+2

Lustige Sache. Ich habe alle vorgeschlagenen Antworten getestet, darunter auch verschiedene Datensätze. Aber sobald ich mein Testprogramm erneut starte, sind die Ergebnisse in der gleichen Reihenfolge wie zuvor. als ob der Zufalls-Seed-Generator jedes Mal in ms-Zugriff zurückgesetzt wird. Ich fand später das: [Random Number Generator Abfrage nicht so zufällig] (http://database.ittoolbox.com/groups/technical-functional/access-l/random-number-generator-query-not-so-random- 3887838) – kobik

+0

es tut dasselbe bummi, jedes Mal wenn ich es laufe, bekomme ich die gleichen 4 Ergebnisse –

+0

so wie Sie vorschlagen, @Kobik zu beheben –

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

Dies gibt Ihnen eine neue Reihe von Antworten jedes Mal, Sie brauchen nicht einmal eine Zeit zu machen, wenn Sie „NOW“ verwenden (was jedes Mal eine neue Zeit, die Sie ganz gleich darauf klicken wie schnell du klickst), meiner Meinung nach der einfachste und sauberste Weg, dies in Access zu lösen.

+0

Dieser funktioniert vollkommen in Ordnung für mich. Alle anderen Methoden geben die gleiche Menge an Datensätzen an. Gute Arbeit. – MatVAD

Verwandte Themen