我有這張表,2個課程有12個可能的主題(內容:主題ID,如果沒有更多主題存在,則爲NULL)。請注意,它可以包含多達50周不同的課程,不僅2MySql COALESCE不能正常工作
我用,而試圖證明課程名稱(workis精細)和COALESCE在每門課程的課程的科目ID展示,這應該是最終的結果:
CURSO德ProgramaciónCREATIVA CON PHPŸMySQL的 - CURSO:1 - CURSO:2 - CURSO:10 -
主恩DISENOŸDESARROLLO網 - CURSO:1 -
但事情未能如我COALESCE表達我得到:
CURSO德ProgramaciónCREATIVA CON PHPŸMySQL的 - CURSO:1 - CURSO:1 -
主恩DISENO ŸDESARROLLO網 - CURSO:1 - CURSO:1 -
下面是代碼:
$select = select("SELECT * FROM course_conf JOIN course_type ON ct_id=co_fk_ct_id ORDER BY co_name");
while($registroBbdd = consultaRegistro($select))
{
$courseName=$registroBbdd['co_name'];
$result = select("SELECT COALESCE(co_subj1,co_subj2,co_subj3,co_subj4,co_subj5,co_subj6,co_subj7,co_subj8,co_subj9,co_subj10,co_subj11,co_subj12) FROM course_conf");
echo '<div class="contentColumn80">
<span class="tableContentText ">'.$courseName.' - </span>';
while($row=mysql_fetch_array($result))
{
echo '<span>CURSO: '.$row['COALESCE(co_subj1,co_subj2,co_subj3,co_subj4,co_subj5,co_subj6,co_subj7,co_subj8,co_subj9,co_subj10,co_subj11,co_subj12)'].' - </span>';
}
echo '</div>';
}
你COALESCE將返回co_subj1的價值,因爲它是NOT NULL的第一表達,因此它總是1. http://stackoverflow.com/questions/13366488/coalesce-function-in-tsql – Sky