私はmoodle Multitrackを使ってキャリアアセスメントテストを開発しています。私は一度に1つの質問をランダムな質問を表示するようにプラグインを変更したい。したがって、合計10の質問がある場合は、ランダムな質問が最初に表示され、保存された後、残りの9つの質問からランダムな質問が表示されます。テーブルからランダムに質問を繰り返し表示しない
id(bigint),
magtestid(bigint),
questiontext(longtext),
questiontextformat(mediumint),
sortorder(bigint).
質問が「ソート順」列に基づいてソートされています。質問は、フィールドである「magtest_question」と呼ばれるテーブルに保存されています。だから私はランダムに並べ替えるためにクエリを変更しようとしました。
SELECT * FROM {magtest_question} WHERE magtestid=? ORDER BY RAND()
しかし、同じ質問が再び表示されることがあります。私は試行される質問を避けたい。どのようにSQLクエリを使用してこれを達成することができます。助けてください。
このような
何かに答えてきた質問を除外する必要があります。これはランダムに配置された一連の質問を構築するために使用できます。 (例えば)PHPのシャッフル機能を使用しても同じ効果が得られます。 – Strawberry
+1ストロベリーの答えです。データテーブルの値が重複していないか確認してください。前述のクエリは重複した値を生成すべきではありません。 – Djeramon
@Djeramon 5つの質問で試してみましたが、同じ質問が再び表示されています。 – user1690835