2015-12-29 31 views
1

我有下表,名爲「問題」。檢索ID並處理它

enter image description here

我想要一個查詢,會從我指定的PID表中檢索的最大QID。然後我想要選擇的值並加1。我希望這個工作,即使沒有價值,其中Pid是例如1或2.

例如,如果max qid是1,其中pid是1,我想要一個代碼檢索1並添加1.如果我在我的查詢中放置「WHERE pid = 2」,並且表中沒有pid = 2,我希望它使qid = 1。

我有這個代碼來獲得最大的qid值,但它不起作用。

$qu = mysqli_query("SELECT max(qid) AS id FROM answer_det WHERE WHERE pid = '1' ");   
$result = $mysqli->query($qu); 
if ($result->num_rows > 0) { 
    while($row = $result->fetch_array()) { 
     echo $row['id']; 
    } 
} 
+0

定義「這是行不通的」。怎麼了?你會有什麼不同的期待? – ArSeN

+0

將'max(qid)'改爲'coalesce(max(qid),1)'coalesce在系列中取第一個非空值。 – xQbert

回答

2

我想你應該IFNULL

$qu = mysqli_query("SELECT ifnull(max(qid)+1, 1) AS id 
         FROM answer_det WHERE WHERE pid = '1' "); 

使用這種方式,如果你嘗試了PID的查詢不存在你得到的值1,否則你得到的值+1

+0

我已經爲這兩種情況更新了答案。 – scaisEdge