我正在尝试运行此 SQL:
$sql="SELECT LEAST(".implode(',',$column_list).") as num FROM callplandata WHERE num IS NOT 0 ";
错误:您的 SQL 语法有错误;查看与您的 MySQL 服务器版本对应的手册,了解在第 1 行的“0”附近使用的正确语法
我也试过
$sql="SELECT LEAST(".implode(',',$column_list).") as num FROM callplandata WHERE num IS NOT NULL ";
错误:“where 子句”中的未知列“num”
但我得到了上述每个错误。
我怎样才能解决这个问题 - 我正在尝试显示非 0 的值
最佳答案
在这种情况下使用 HAVING
而不是 WHERE
。
$sql="SELECT LEAST(".implode(',',$column_list).") as num FROM callplandata HAVING num != 0 ";
有什么区别? WHERE
在 GROUP BY
操作之前应用,LEAST
也必须在返回结果之前对结果进行分组(所以 WHERE 子句在你的结果被调用之前被调用)计数),HAVING
之后应用(并且可以过滤聚合,例如 MIN、MAX、LEAST
等)。
关于PHP/MySQL - 其中列不是 0/NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18351275/