2014-05-01 186 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上工作。 –