4

3つのカテゴリからの質問の表があります。

次を使用して、ランダムな質問を1つ取得します。

SELECT * FROM tblQuestions ORDER BY RAND() LIMIT 1

ただし、テーブルにはqCategoryというフィールドもあり、合計で3つのカテゴリがあります。私が欲しいのは、3つのカテゴリのそれぞれから1つの質問を取得するSQLクエリです(つまり、合計3つのランダムな質問)。

4

2 に答える 2

6

次を使用して、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)
于 2012-12-26T01:25:17.540 に答える
2

それを行う1つの方法は使用することですGROUP BY

SELECT * FROM tblQuestions ORDER BY RAND() GROUP BY qCategory
于 2012-12-26T01:27:00.757 に答える