3つのカテゴリからの質問の表があります。
次を使用して、ランダムな質問を1つ取得します。
SELECT * FROM tblQuestions ORDER BY RAND() LIMIT 1
ただし、テーブルにはqCategoryというフィールドもあり、合計で3つのカテゴリがあります。私が欲しいのは、3つのカテゴリのそれぞれから1つの質問を取得するSQLクエリです(つまり、合計3つのランダムな質問)。
3つのカテゴリからの質問の表があります。
次を使用して、ランダムな質問を1つ取得します。
SELECT * FROM tblQuestions ORDER BY RAND() LIMIT 1
ただし、テーブルにはqCategoryというフィールドもあり、合計で3つのカテゴリがあります。私が欲しいのは、3つのカテゴリのそれぞれから1つの質問を取得するSQLクエリです(つまり、合計3つのランダムな質問)。
次を使用して、3つのクエリの結果を組み合わせることができますUNION ALL
。
(SELECT * FROM tblQuestions WHERE qCategory='A' ORDER BY RAND() LIMIT 1)
UNION ALL
(SELECT * FROM tblQuestions WHERE qCategory='B' ORDER BY RAND() LIMIT 1)
UNION ALL
(SELECT * FROM tblQuestions WHERE qCategory='C' ORDER BY RAND() LIMIT 1)
それを行う1つの方法は使用することですGROUP BY
:
SELECT * FROM tblQuestions ORDER BY RAND() GROUP BY qCategory