2013-10-08 131 views
1

如果faulttype ='business'和faultseverity ='fatal',我想使用下面列出的查询将4与故障数相乘;MySQL查询返回字符串而不是数字值

Select faulttype, IF (faulttype='business' AND faultseverity='fatal', 1,0)* 4 FROM tbl_fault WHERE product='DAS' AND faultdistribution='missed' 
group by faulttype 

我得到的结果业务,而不是数值,我应该在此查询得到纠正?

问候

+0

哪个结果集的列是你想找回?第一个仍然是'faulttype',第二个将是数字值。 –

+0

我想从第二列中检索数值。 – MOZ

+1

是的,但你应该向我们展示代码,而不是查询。问题必须在那里。 –

回答

1

试试这个

Select CASE faulttype WHEN faulttype='business' AND faultseverity='fatal' THEN 1*4 ELSE 0 END AS rez FROM tbl_fault WHERE product='DAS' AND faultdistribution='missed' 
2

试试这个

Select faulttype, sum(IF (faulttype='business' AND faultseverity='fatal', 1,0))*4 FROM tbl_fault WHERE product='DAS' AND faultdistribution='missed' 
group by faulttype; 

For reference see the sql fiddle.

相关问题