MySQL - 查找 MIN 但不为零

标签 mysql

我正在尝试使用 MIN 函数获取 MySQL 中列的最小值。但是有可能告诉 MySQL 忽略零值吗?问题是我将 0 存储为默认值,而不是 tinyint 列的 NULL 。我想要的是得到大于 0 的最小值。

SELECT a.baseloc_id, 
a.baseloc_latitude, 
a.baseloc_longitude, 
a.baseloc_distance, 
MIN(b.basecost_ton2_cost) as minTon2, 
MIN(b.basecost_ton3_cost) as minTon3, 
MIN(b.basecost_ton10_cost) as minTon10 
FROM bbox_logi_base_locations a 
LEFT JOIN bbox_logi_base_cost b 
    USING (baseloc_id) 
GROUP BY a.baseloc_id;

感谢您的帮助。

编辑 01:

对不起,我忘了提到这一点。 bbox_logi_base_cost 表的行包含碎片值。例如,一行可以将 basecost_ton2_cost 作为 0 但其他列填充值。另一行可以将除一列之外的每一列作为 0。因此,不能使用 WHERE 条件过滤任何行。

最佳答案

使用这个:

MIN(NULLIF(value, 0))

关于MySQL - 查找 MIN 但不为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2099720/

相关文章:

php - 更改域名导致我的图像无法在 WordPress 中加载

mysql - 如何将交叉连接与左外连接一起使用?

mysql - 多表DELETE LIMIT

php - 脚本将相同的值插入数据库

mysql - 组合键 VS 主键 + 非唯一索引

mysql - 使用 peewee 连接 mysql 以及访问表的一些问题

php - SQL查询语句表连接

php - 如何在 PHP 中显示取决于用户输入的长查询的 MySQL 错误?

php - 如果我创建索引,SQL 查询会快得多

java - 使用 MD5 哈希密码注册/登录 JAVA