web-dev-qa-db-ja.com

MS Accessデータベースからランダムなレコードを取得する方法

MS Accessデータベースがあります。その中で、1つのテーブルは主キーquestionIDを持つ質問と回答で構成されています。 questionIDを使用してそのテーブルからランダムな質問を取得する必要があります。このシナリオではどのキーワードまたはクエリを使用すればよいですか。

14
user1169809

以下は、テーブルからランダムなquestionIDを取得します

MySQL

SELECT questionID FROM questions ORDER BY Rand() LIMIT 1

MS Access

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

使用できる別のランダムレコードを取得するには、テーブルにIDフィールドが必要です。

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

Rnd関数にパラメーターとして渡される負の値は、このパラメーターを開始値として使用して、ジェネレーターから最初のランダムな値を配信します。 (一種の定義されたランダム化)。コメントからの@kobikのヒントに特に感謝します。

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

これにより、毎回新しい答えのセットが得られます。「NOW」を使用する時間を作成する必要はありません(これは、クリックの速さに関係なく、毎回新しいクリックになります)。私の意見では、Accessでこれを解決する最も簡単で適切な方法です。

4
Yauhun