PHP RIGHT JOIN 查询不考虑空值?
PHP RIGHT JOIN query not considering null?
当我 运行 查询时,它 return 提供了所有正确的值,除了它 return 没有 a.Correct = null 的任何值(即测验问题根本没有回答),但它确实 return a.Correct = 0.
的值
/***Configure the retest***/
public function CreateRetest($topicID) {
$retestData = array();
$count = 0;
$createSQL = "SELECT q.QuestionID,q.Question,q.Answer,q.TopicID From quizanswered a RIGHT JOIN question q ON a.QuestionID = q.QuestionID where (a.Correct=null OR a.Correct = 0) AND q.TopicID = '$topicID'";
$create = mysqli_query($this->db,$createSQL) or die(mysqli_connect_errno()."Cannot create tables");
while($row = mysqli_fetch_array($create)){
$rQuestionID = $row['QuestionID'];
$rQuestion = $row['Question'];
$rAnswer = $row['Answer'];
$retestData[$count] = array($rQuestionID,$rQuestion,$rAnswer);
$count +=1;
}
return $retestData;
}
将 =null
替换为 IS NULL
SELECT
q.QuestionID,
q.Question,
q.Answer,
q.TopicID
FROM quizanswered a
RIGHT JOIN question q
ON a.QuestionID = q.QuestionID
WHERE (a.Correct IS NULL OR a.Correct = 0) AND q.TopicID = '$topicID'
当我 运行 查询时,它 return 提供了所有正确的值,除了它 return 没有 a.Correct = null 的任何值(即测验问题根本没有回答),但它确实 return a.Correct = 0.
的值 /***Configure the retest***/
public function CreateRetest($topicID) {
$retestData = array();
$count = 0;
$createSQL = "SELECT q.QuestionID,q.Question,q.Answer,q.TopicID From quizanswered a RIGHT JOIN question q ON a.QuestionID = q.QuestionID where (a.Correct=null OR a.Correct = 0) AND q.TopicID = '$topicID'";
$create = mysqli_query($this->db,$createSQL) or die(mysqli_connect_errno()."Cannot create tables");
while($row = mysqli_fetch_array($create)){
$rQuestionID = $row['QuestionID'];
$rQuestion = $row['Question'];
$rAnswer = $row['Answer'];
$retestData[$count] = array($rQuestionID,$rQuestion,$rAnswer);
$count +=1;
}
return $retestData;
}
将 =null
替换为 IS NULL
SELECT
q.QuestionID,
q.Question,
q.Answer,
q.TopicID
FROM quizanswered a
RIGHT JOIN question q
ON a.QuestionID = q.QuestionID
WHERE (a.Correct IS NULL OR a.Correct = 0) AND q.TopicID = '$topicID'