これが SQL 機能であるかどうかはわかりません... 要するに、別のテーブルの配列/カンマ区切りリストで ID が見つからないテーブルの行が必要です。以下の詳細情報:
セットアップは 2 つのテーブルです。ユーザーテーブルと質問テーブル。user-table には、ユーザーが回答した質問 ID を含む、カンマ区切りのリストである AnswerQuestions という列があります。
私は 4 つのランダムな質問を取得しようとしていますが、それぞれにはまだ回答がありません。
SQLクエリでランダムに4を取得する方法
SELECT * FROM questions WHERE id >= RAND() * (SELECT MAX(id) FROM questions) LIMIT 4
ただし、これは、ユーザーが以前にその質問をしたことがあるかどうかを考慮せずに、4 つのランダムな質問を返すだけです。
Javascriptでやるとしたらこんな感じ
var questions = [1,2,3,4,5,6,7,8,9,10,11,12];
var answeredQuestions = [3,5,9,12];
var sqlReturn = [];
for (var i=0;i<4;i++) {
var randNo = 0;
while (randNo == 0 || sqlReturn.indexOf(randNo) > -1 || answeredQuestions.indexOf(randNo) > -1) {
randNo = Math.floor((Math.random()*questions.length)+1);
}
sqlReturn[i] = randNo;
}
document.write(sqlReturn);