2015-12-29 51 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