我将学期成绩保存在表格中。学生每学期参加2次考试,课程长达4个学期(共8次考试)。我已经检查了表中是否有绝对没有等级,现在已经通过...我如何检查,最好是给出的最后等级,并回显所有等级到那一点。
$sql1 = "SELECT * FROM infot WHERE Vorname='".$_SESSION['Fname']."'";
$res1 = mysql_query($sql1);
$check1 = mysql_num_rows($res1);
if ($check1 > 0 )
while ($row1 = mysql_fetch_assoc($sql1))
{
$note1 =
"
";
}
else
{
$nichts1=
"
<h2> Info T </h2> <br>
Es gibt noch keine Noten, bereite dich vor! Klausuren kommen!!
";
echo $nichts1;
}
请原谅德国人,我在德国工作=)但我的问题是,我究竟应该放入$ note1,我的意思是我必须再做一次num_row检查或者...这将是最无痛的方式这样做?
请不要告诉我检查每个等级的NULL ...我知道该怎么做但看起来好像不需要的工作=)
答案 0 :(得分:1)
如果在单个表中包含所有这些字段,则需要检查每个字段是否为空。幸运的是,如果要检查它们是否 all 为null,则可以使用COALESCE
函数。它返回一系列值的第一个非空值。因此,如果它返回null
,则表示您传递给它的每个值都是null
。
select
*
from
Students s
where
COALESCE(TEST1, TEST2, SEM1Grade, TEST3, TEST4, SEM2Grade) IS NULL
要选择最后一个成绩,您可以通过还原字段的顺序来执行类似的操作:
select
s.*,
COALESCE(SEM2Grade, TEST4, TEST3, SEM1Grade, TEST2, TEST1) as LastGrade
from
Students s
如果您需要更复杂的操作,可能仍需要更详细的查询。