2014-05-01 136 views
-1

我怎样才能得到这个语法的工作?我得到了它的结果之一。但我想要 从3中得到查询。(result1,result2result3)。查询的正确语法是什么

$sql = "SELECT modulid=1 FROM oppgave WHERE resultat resultat2 resultat3 is NULL ORDER BY RAND() LIMIT 1"; 

任何提示如何查询3?

回答

1

尝试以下:

如果你想检查任何一个为空的resultat,resultat2和resultat3的,然后用下面的查询:

SELECT moduleid 
FROM oppgave 
WHERE modulid=1 and (resultat is null or resultat2 is null or resultat3 is NULL) 
ORDER BY RAND() LIMIT 1; 

如果要检查所有resultat ,resultat2和resultat3应该为空,然后使用以下查询:

SELECT moduleid 
FROM oppgave 
WHERE modulid=1 and (resultat is null and resultat2 is null and resultat3 is NULL) 
ORDER BY RAND() LIMIT 1; 
0

重写查询这样的..

SELECT * 
FROM oppgave 
WHERE modulid=1 
AND 
coalesce(resultat, resultat2, resultat3) IS NULL 
ORDER BY RAND() LIMIT 1; 

继续这样的..

$result = mysql_query($sql, $tilkobling); 
echo "<br>"; 
while ($nextrow= mysql_fetch_array($result)){ 
    echo "Besvarelse: <br>" . $nextrow['besvarelse']; "<br>Modulid: " . $nextrow['modulid']; 
} 

这(mysql_*)扩展已废弃PHP 5.5.0,并会在被删除未来。相反,准备好的语句MySQLiPDO_MySQL扩展名应该用于避免SQL注入攻击!

+0

谢谢你的回答!我认为这是我需要的。但是我的查询没有得到任何输出。 – user2879767

+0

我用这个来获取restult。 mabt我做了一些错误在那里:$ result = mysql_query($ sql,$ tilkobling); echo“
”; ($ nextrow = mysql_fetch_assoc($ result)){ echo“Besvarelse:
”。 $ nextrow [ 'besvarelse']; “
Modulid:”。 $ nextrow [ 'modulid']; – user2879767

+0

尝试新的查询..我编辑了答案。但你没有回答我的问题,上述查询是否在你的MySQL控制台或phpMyAdmin上工作。 –