从表中选择列名称与另一个表中的数据相等

时间:2013-08-20 14:25:42

标签: php mysql

我正在运行此SQL查询:

$sql2="SELECT * from callplanmeta ";
$rs2=mysql_query($sql2,$conn) or die(mysql_error());
while($result2=mysql_fetch_array($rs2))
{
    $column_list[] = $result2["callplanname"];
}

$sql="SELECT LEAST(NULLIF(".implode(',',$column_list).",0)) as num FROM callplandata ";
$rs=mysql_query($sql,$conn) or die(mysql_error());
while($result=mysql_fetch_array($rs))
{
    echo $result["description"].' - '.$result["num"].'<br><br>';
}

所以在callplanmeta表中是包含callplandata表的列名的行。

此查询工作正常,但我需要一种方法来阻止它显示$result["num"]结果中的零值。我希望它不显示零值,只显示每行的下一个值。

1 个答案:

答案 0 :(得分:1)

你应该尝试:

$sql="SELECT LEAST(NULLIF(".implode(',',$column_list).",0)) as num FROM callplandata WHERE LEAST(NULLIF(".implode(',',$column_list).",0)) != 0";

而不是:

$sql="SELECT LEAST(NULLIF(".implode(',',$column_list).",0)) as num FROM callplandata ";