PHP RIGHT JOIN 查询不考虑 null?

标签 php mysql right-join

当我运行查询时,它返回所有正确的值,除了它不返回任何 a.Correct = null 的值(即测验问题根本没有得到解答),但它确实返回 a 的值。正确 = 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'

关于PHP RIGHT JOIN 查询不考虑 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41008163/

相关文章:

php - 在 laravel 5 中使用 pingpong sky 模块

php - Greasemonkey 脚本将 JavaScript 变量与另一个页面的内容进行比较?

mysql - 基于 if else if 条件的 SQL 连接表

sql - 为什么这个查询不能正常工作?

php - php中的 "::"符号有什么用?

php - 如何在 CentOS 上的 php 中使用 mail() 从 Web 应用程序发送电子邮件(sendmail、postfix、...?)

mysql - 从一个表中选择所有记录,并显示是否在另一个表中找到该记录的额外字段

mysql - 无法截断外键约束中引用的表

php - 获取大数据时mysql连接超时

MySQL UNION 只包含第一个表