MS Accessデータベースがあります。その中で、1つのテーブルは主キーquestionIDを持つ質問と回答で構成されています。 questionIDを使用してそのテーブルからランダムな質問を取得する必要があります。このシナリオではどのキーワードまたはクエリを使用すればよいですか。
以下は、テーブルからランダムなquestionIDを取得します
MySQL
SELECT questionID FROM questions ORDER BY Rand() LIMIT 1
MS Access
SELECT top 1 questionID from questions ORDER BY rnd(questionID)
使用できる別のランダムレコードを取得するには、テーブルにIDフィールドが必要です。
SELECT TOP 1 questionID FROM questions ORDER BY Rnd(-(100000*questionID)*Time())
Rnd関数にパラメーターとして渡される負の値は、このパラメーターを開始値として使用して、ジェネレーターから最初のランダムな値を配信します。 (一種の定義されたランダム化)。コメントからの@kobikのヒントに特に感謝します。
SELECT TOP 5 questionID FROM [tableName] ORDER BY rnd(INT(NOW*questionID)-NOW*questionID)
これにより、毎回新しい答えのセットが得られます。「NOW」を使用する時間を作成する必要はありません(これは、クリックの速さに関係なく、毎回新しいクリックになります)。私の意見では、Accessでこれを解決する最も簡単で適切な方法です。