id
、type
、question
、option1 .. 4
およびanswer
フィールドを持つ 1 つの質問テーブルがあります。A、B、C の 3 種類の問題があります。
タイプ A とタイプ B の場合はランダムに 7 問、タイプ C の場合はランダムに 6 問出題する必要があります。各テストで合計 20 問を表示します。
一度に 1 つの質問のみを表示し、次のボタンで次の質問を表示する必要があります。だから私はこれのためにページネーションを使用しています。そのため、mysql クエリの最後に$limit
,を追加する必要があります。$start
これに対して単一のクエリを作成するにはどうすればよいですか。
次のような 2 つのクエリを作成しました。
1:
(select * from dgm_questions Where ques_type IN('A') Order by rand() ASC Limit 7) union (select * from dgm_questions Where ques_type
IN('B') Order by rand() ASC Limit 7) union (select * from
dgm_questions Where ques_type IN('C') Order by rand() ASC
Limit 6)
2: select ques_id, ques_type from dgm_questions Where ques_type IN('A','B','C') Order by rand() ASC Limit 20
最初のクエリで合計 20 の質問が表示されますが、追加できません$limit
,$start
ページネーションと 2 番目のクエリでは、A の制限 7、B タイプの制限 C タイプの制限 6 が表示されません。
これに対するクエリをどのように書くことができますか?