0
Я бегу этого 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"]
. Я хочу, чтобы он не показывал нулевые значения и просто показывал следующий для каждой строки.
я получаю эту ошибку Неправильный подсчет параметров в вызове собственной функции 'NULLIF' –
и если я пытаюсь $ SQL =» SELECT LEAST (". Implode (',', $ column_list).") Как num FROM callplandata WHERE num IS NOT NULL "; я получаю сообщение об ошибке: Неизвестный столбец «num» in «where clause» –
Если вы хотите отсортировать строки, в которых один столбец равен 0, вы можете: $ sql = «SELECT LEAST (« .modode (',', $ column_list). ") как num FROM callplandata WHERE num IS NOT 0"; (если он по-прежнему не работает, пришлите мне сообщение) – Christoph