MySQL - 查找MIN但不是零

Nir*_*mal 28 mysql

我试图使用该MIN函数获取MySQL中列的最小值.但是有可能告诉MySQL忽略零值吗?问题是,我保存0为默认值,而不是NULLtinyint列.我想要的是获得大于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)

感谢您的任何帮助.

编辑01:

对不起,我忘了提这个.该bbox_logi_base_cost表包含包含碎片值的行.例如,一行可以具有basecost_ton2_costas,0但其他列可以填充值.另一行可以包含每一列但只有一列0.因此,不能使用WHERE条件过滤行.

Dav*_*d M 81

用这个:

MIN(NULLIF(value, 0))
Run Code Online (Sandbox Code Playgroud)


小智 5

你的正确答案是:

IFNULL(MIN(NULLIF(value, 0)), 0)
Run Code Online (Sandbox Code Playgroud)

虽然ISNULL不工作。