我试图使用该MIN函数获取MySQL中列的最小值.但是有可能告诉MySQL忽略零值吗?问题是,我保存0为默认值,而不是NULL一tinyint列.我想要的是获得大于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;
Run Code Online (Sandbox Code Playgroud)
感谢您的任何帮助.
对不起,我忘了提这个.该bbox_logi_base_cost表包含包含碎片值的行.例如,一行可以具有basecost_ton2_costas,0但其他列可以填充值.另一行可以包含每一列但只有一列0.因此,不能使用WHERE条件过滤行.
小智 5
你的正确答案是:
IFNULL(MIN(NULLIF(value, 0)), 0)
Run Code Online (Sandbox Code Playgroud)
虽然ISNULL不工作。