我正在尝试使用 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/