PHP/MySQL - 其中列不是 0/NULL

标签 php mysql

我正在尝试运行此 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 ";

有什么区别? WHEREGROUP BY 操作之前应用,LEAST 也必须在返回结果之前对结果进行分组(所以 WHERE 子句在你的结果被调用之前被调用)计数),HAVING 之后应用(并且可以过滤聚合,例如 MIN、MAX、LEAST 等)。

关于PHP/MySQL - 其中列不是 0/NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18351275/

相关文章:

php - paypal团购?

PHP 扩展安装 - phpize 错误 - 在 NGINX/PHP-FPM 上

php - 在没有用户交互的情况下在特定时间后运行 sql 查询?

mysql - 如何处理数据库模式中的用户权限?

mysql - Docker-Compose WordPress MySql 无法连接

mysql - Django的inspectdb不做ManyToManyField

php - 将关联对添加到 PHP 数组

php - 在我的 php 脚本中,我与服务器的连接有效,但我的 sql 查询不起作用

php - 是否有可能将过程代码转换为 PHP 中的面向对象代码?

php - 在线电话、调用转移和跟踪何时实现收入调用? |网站项目