2013-08-21 4 views
1

Я пытаюсь запустить этот SQL:PHP/MySQL - где столбец не 0/NULL

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

ОШИБКА: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0' at line 1

я также попытался

$sql="SELECT LEAST(".implode(',',$column_list).") as num FROM callplandata WHERE num IS NOT NULL "; 

ОШИБКА: Unknown column 'num' in 'where clause'

, но я получаю вышеуказанные ошибки для каждого из них.

как я могу обойти это - я пытаюсь показать значения, которые НЕ 0

+0

Вы пробовали это - WHERE num! = 0 –

+0

yep и опять же - Неизвестный столбец 'num' in 'where clause' –

ответ

3

Использование HAVING вместо WHERE в этом случае.

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

В чем разница? WHERE применяется до GROUP BY операций, LEAST также должен группировать ваши результаты перед возвратом (так, что предложение WHERE вызывается до того, как ваши результаты были подсчитаны), HAVING применяется после (и может фильтровать на агрегатах, таких как MIN, MAX, LEAST и т. Д.).

+0

отлично работает - приветствует –

Смежные вопросы